From e480fd241f71f047c148170daf871d6d9a817414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B7=98=E5=B0=8F=E6=9D=B0?= Date: Sun, 7 Dec 2014 03:03:55 +0800 Subject: [PATCH 001/412] add dragging className add dragging className --- lib/draggable.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 8464aba2..0e7364e6 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -3,6 +3,7 @@ /** @jsx React.DOM */ var React = require('react/addons'); var emptyFunction = require('react/lib/emptyFunction'); +var CX = React.addons.classSet; function createUIEvent(draggable) { return { @@ -434,12 +435,16 @@ module.exports = React.createClass({ if (this.state.dragging && !isNaN(this.props.zIndex)) { style.zIndex = this.props.zIndex; } - + + var className = CX({ + 'react-draggable': true, + 'react-dragging': this.state.dragging + }); // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.addons.cloneWithProps(React.Children.only(this.props.children), { style: style, - className: 'react-draggable', + className: className, onMouseDown: this.handleDragStart, onTouchStart: function(ev){ From d2b44d472757abcea58ae2292b256c24dbe4698b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B7=98=E5=B0=8F=E6=9D=B0?= Date: Fri, 19 Dec 2014 10:59:38 +0800 Subject: [PATCH 002/412] update dragging className --- lib/draggable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/draggable.js b/lib/draggable.js index 0e7364e6..93da8cba 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -438,7 +438,7 @@ module.exports = React.createClass({ var className = CX({ 'react-draggable': true, - 'react-dragging': this.state.dragging + 'react-draggable-dragging': this.state.dragging }); // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) From cd0ba242553a4ffe328b00d7c7ae64cc7cc295e6 Mon Sep 17 00:00:00 2001 From: Inbound Now Date: Thu, 25 Dec 2014 09:45:03 -0800 Subject: [PATCH 003/412] Fix node server side react rendering. Window undefined When compiling react components server side, window function throws error: /app/components/react-draggable.js:62 var isTouchDevice = 'ontouchstart' in window // works on most browsers ^ ReferenceError: window is not defined --- lib/draggable.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 43b199a6..77a2f4d3 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -49,8 +49,16 @@ function matchesSelector(el, selector) { } // @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886 -var isTouchDevice = 'ontouchstart' in window // works on most browsers +/* Conditional to fix node server side rendering of component */ +if (typeof module !== "undefined" && typeof require !== "undefined") { + // Do Node Stuff + var isTouchDevice = false; + +} else { + // Do Browser Stuff + var isTouchDevice = 'ontouchstart' in window // works on most browsers || 'onmsgesturechange' in window; // works on ie10 on ms surface +} // look ::handleDragStart //function isMultiTouch(e) { @@ -402,7 +410,7 @@ module.exports = React.createClass({ var directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1; clientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0] - ? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX)) + ? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX)) : this.state.clientX; clientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1] From 126242a139e6e0fc1463dd92850769d83f24db03 Mon Sep 17 00:00:00 2001 From: Inbound Now Date: Fri, 26 Dec 2014 16:16:52 -0800 Subject: [PATCH 004/412] update conditional to check for window --- lib/draggable.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 77a2f4d3..e505c196 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -50,14 +50,14 @@ function matchesSelector(el, selector) { // @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886 /* Conditional to fix node server side rendering of component */ -if (typeof module !== "undefined" && typeof require !== "undefined") { +if (typeof window === 'undefined') { // Do Node Stuff var isTouchDevice = false; - } else { // Do Browser Stuff var isTouchDevice = 'ontouchstart' in window // works on most browsers || 'onmsgesturechange' in window; // works on ie10 on ms surface + } // look ::handleDragStart From ba038c1cb5d2999605e85fa6df616443af981a96 Mon Sep 17 00:00:00 2001 From: mzabriskie Date: Sat, 3 Jan 2015 00:00:22 -0700 Subject: [PATCH 005/412] Releasing 0.4.0 --- CHANGELOG.md | 10 +- bower.json | 2 +- dist/react-draggable.js | 199 +++++++---------------------------- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 7 files changed, 51 insertions(+), 168 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1220b5b6..82cf4a82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,4 +22,12 @@ ### 0.3.0 (Oct 21, 2014) -- Adding support for touch devices \ No newline at end of file +- Adding support for touch devices + +### 0.4.0 (Jan 03, 2015) + +- Improving accuracy of snap to grid +- Updating to React 0.12 +- Adding dragging className +- Adding reactify support for browserify +- Fixing issue with server side rendering diff --git a/bower.json b/bower.json index 4fd9d787..eeabb363 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.3.0", + "version": "0.4.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 202c5fa3..190ca406 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -66,6 +66,7 @@ return /******/ (function(modules) { // webpackBootstrap /** @jsx React.DOM */ var React = __webpack_require__(2); var emptyFunction = __webpack_require__(3); + var CX = React.addons.classSet; function createUIEvent(draggable) { return { @@ -112,9 +113,17 @@ return /******/ (function(modules) { // webpackBootstrap } // @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886 - var isTouchDevice = 'ontouchstart' in window // works on most browsers + /* Conditional to fix node server side rendering of component */ + if (typeof window === 'undefined') { + // Do Node Stuff + var isTouchDevice = false; + } else { + // Do Browser Stuff + var isTouchDevice = 'ontouchstart' in window // works on most browsers || 'onmsgesturechange' in window; // works on ie10 on ms surface + } + // look ::handleDragStart //function isMultiTouch(e) { // return e.touches && Array.isArray(e.touches) && e.touches.length > 1 @@ -419,8 +428,8 @@ return /******/ (function(modules) { // webpackBootstrap // Initiate dragging this.setState({ dragging: true, - offsetX: dragPoint.clientX, - offsetY: dragPoint.clientY, + offsetX: parseInt(dragPoint.clientX, 10), + offsetY: parseInt(dragPoint.clientY, 10), startX: parseInt(node.style.left, 10) || 0, startY: parseInt(node.style.top, 10) || 0 }); @@ -461,12 +470,15 @@ return /******/ (function(modules) { // webpackBootstrap // Snap to grid if prop has been provided if (Array.isArray(this.props.grid)) { - clientX = Math.abs(clientX - this.state.clientX) >= this.props.grid[0] - ? clientX + var directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1; + var directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1; + + clientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0] + ? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX)) : this.state.clientX; - clientY = Math.abs(clientY - this.state.clientY) >= this.props.grid[1] - ? clientY + clientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1] + ? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY)) : this.state.clientY; } @@ -497,12 +509,16 @@ return /******/ (function(modules) { // webpackBootstrap if (this.state.dragging && !isNaN(this.props.zIndex)) { style.zIndex = this.props.zIndex; } - + + var className = CX({ + 'react-draggable': true, + 'react-draggable-dragging': this.state.dragging + }); // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.addons.cloneWithProps(React.Children.only(this.props.children), { style: style, - className: 'react-draggable', + className: className, onMouseDown: this.handleDragStart, onTouchStart: function(ev){ @@ -528,25 +544,16 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { /** - * Copyright 2013-2014 Facebook, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * Copyright 2013-2014, Facebook, Inc. + * All rights reserved. * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule emptyFunction */ - var copyProperties = __webpack_require__(4); - function makeEmptyFunction(arg) { return function() { return arg; @@ -560,150 +567,18 @@ return /******/ (function(modules) { // webpackBootstrap */ function emptyFunction() {} - copyProperties(emptyFunction, { - thatReturns: makeEmptyFunction, - thatReturnsFalse: makeEmptyFunction(false), - thatReturnsTrue: makeEmptyFunction(true), - thatReturnsNull: makeEmptyFunction(null), - thatReturnsThis: function() { return this; }, - thatReturnsArgument: function(arg) { return arg; } - }); + emptyFunction.thatReturns = makeEmptyFunction; + emptyFunction.thatReturnsFalse = makeEmptyFunction(false); + emptyFunction.thatReturnsTrue = makeEmptyFunction(true); + emptyFunction.thatReturnsNull = makeEmptyFunction(null); + emptyFunction.thatReturnsThis = function() { return this; }; + emptyFunction.thatReturnsArgument = function(arg) { return arg; }; module.exports = emptyFunction; -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-2014 Facebook, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @providesModule copyProperties - */ - - /** - * Copy properties from one or more objects (up to 5) into the first object. - * This is a shallow copy. It mutates the first object and also returns it. - * - * NOTE: `arguments` has a very significant performance penalty, which is why - * we don't support unlimited arguments. - */ - function copyProperties(obj, a, b, c, d, e, f) { - obj = obj || {}; - - if ("production" !== process.env.NODE_ENV) { - if (f) { - throw new Error('Too many arguments passed to copyProperties'); - } - } - - var args = [a, b, c, d, e]; - var ii = 0, v; - while (args[ii]) { - v = args[ii++]; - for (var k in v) { - obj[k] = v[k]; - } - - // IE ignores toString in object iteration.. See: - // webreflection.blogspot.com/2007/07/quick-fix-internet-explorer-and.html - if (v.hasOwnProperty && v.hasOwnProperty('toString') && - (typeof v.toString != 'undefined') && (obj.toString !== v.toString)) { - obj.toString = v.toString; - } - } - - return obj; - } - - module.exports = copyProperties; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - // shim for using process in browser - - var process = module.exports = {}; - - process.nextTick = (function () { - var canSetImmediate = typeof window !== 'undefined' - && window.setImmediate; - var canPost = typeof window !== 'undefined' - && window.postMessage && window.addEventListener - ; - - if (canSetImmediate) { - return function (f) { return window.setImmediate(f) }; - } - - if (canPost) { - var queue = []; - window.addEventListener('message', function (ev) { - var source = ev.source; - if ((source === window || source === null) && ev.data === 'process-tick') { - ev.stopPropagation(); - if (queue.length > 0) { - var fn = queue.shift(); - fn(); - } - } - }, true); - - return function nextTick(fn) { - queue.push(fn); - window.postMessage('process-tick', '*'); - }; - } - - return function nextTick(fn) { - setTimeout(fn, 0); - }; - })(); - - process.title = 'browser'; - process.browser = true; - process.env = {}; - process.argv = []; - - function noop() {} - - process.on = noop; - process.addListener = noop; - process.once = noop; - process.off = noop; - process.removeListener = noop; - process.removeAllListeners = noop; - process.emit = noop; - - process.binding = function (name) { - throw new Error('process.binding is not supported'); - } - - // TODO(shtylman) - process.cwd = function () { return '/' }; - process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); - }; - - /***/ } /******/ ]) -}) +}); //# sourceMappingURL=react-draggable.map \ No newline at end of file diff --git a/dist/react-draggable.map b/dist/react-draggable.map index 745f19e4..f5160196 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"file":"./dist/react-draggable.js","sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap a2f9fdb08d6684f601ee","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\"","webpack:///./~/react/lib/emptyFunction.js","webpack:///./~/react/lib/copyProperties.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wC;;;;;;CCtCA;;;;;CCAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yDAAwD,gCAAgC;AACxF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,sCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,SAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,QAAQ;AACnB;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA,YAAW,QAAQ;AACnB;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,cAAc;AACnD,oDAAmD,WAAW;AAC9D;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA4B;AAC5B;AACA,QAAO;;AAEP;AACA;AACA,IAAG;AACH;AACA,EAAC;;;;;CCrcD,gD;;;;CCAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAA+B,aAAa,EAAE;AAC9C,uCAAsC,YAAY;AAClD,EAAC;;AAED;;;;;CC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;CCrDA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA2B;AAC3B;AACA;AACA","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap a2f9fdb08d6684f601ee\n **/","module.exports = require('./lib/draggable');\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./index.js\n ** module id = 0\n ** module chunks = 0\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react/addons');\nvar emptyFunction = require('react/lib/emptyFunction');\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\nvar isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = !isTouchDevice ? e : e.touches[0];\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: dragPoint.clientX,\n\t\t\toffsetY: dragPoint.clientY,\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tclientX = Math.abs(clientX - this.state.clientX) >= this.props.grid[0]\n\t\t\t\t\t? clientX\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - this.state.clientY) >= this.props.grid[1]\n\t\t\t\t\t? clientY\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn React.addons.cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: 'react-draggable',\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/draggable.js\n ** module id = 1\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2014 Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @providesModule emptyFunction\n */\n\nvar copyProperties = require(\"./copyProperties\");\n\nfunction makeEmptyFunction(arg) {\n return function() {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\ncopyProperties(emptyFunction, {\n thatReturns: makeEmptyFunction,\n thatReturnsFalse: makeEmptyFunction(false),\n thatReturnsTrue: makeEmptyFunction(true),\n thatReturnsNull: makeEmptyFunction(null),\n thatReturnsThis: function() { return this; },\n thatReturnsArgument: function(arg) { return arg; }\n});\n\nmodule.exports = emptyFunction;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/emptyFunction.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2014 Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @providesModule copyProperties\n */\n\n/**\n * Copy properties from one or more objects (up to 5) into the first object.\n * This is a shallow copy. It mutates the first object and also returns it.\n *\n * NOTE: `arguments` has a very significant performance penalty, which is why\n * we don't support unlimited arguments.\n */\nfunction copyProperties(obj, a, b, c, d, e, f) {\n obj = obj || {};\n\n if (\"production\" !== process.env.NODE_ENV) {\n if (f) {\n throw new Error('Too many arguments passed to copyProperties');\n }\n }\n\n var args = [a, b, c, d, e];\n var ii = 0, v;\n while (args[ii]) {\n v = args[ii++];\n for (var k in v) {\n obj[k] = v[k];\n }\n\n // IE ignores toString in object iteration.. See:\n // webreflection.blogspot.com/2007/07/quick-fix-internet-explorer-and.html\n if (v.hasOwnProperty && v.hasOwnProperty('toString') &&\n (typeof v.toString != 'undefined') && (obj.toString !== v.toString)) {\n obj.toString = v.toString;\n }\n }\n\n return obj;\n}\n\nmodule.exports = copyProperties;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/copyProperties.js\n ** module id = 4\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\nprocess.nextTick = (function () {\n var canSetImmediate = typeof window !== 'undefined'\n && window.setImmediate;\n var canPost = typeof window !== 'undefined'\n && window.postMessage && window.addEventListener\n ;\n\n if (canSetImmediate) {\n return function (f) { return window.setImmediate(f) };\n }\n\n if (canPost) {\n var queue = [];\n window.addEventListener('message', function (ev) {\n var source = ev.source;\n if ((source === window || source === null) && ev.data === 'process-tick') {\n ev.stopPropagation();\n if (queue.length > 0) {\n var fn = queue.shift();\n fn();\n }\n }\n }, true);\n\n return function nextTick(fn) {\n queue.push(fn);\n window.postMessage('process-tick', '*');\n };\n }\n\n return function nextTick(fn) {\n setTimeout(fn, 0);\n };\n})();\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n}\n\n// TODO(shtylman)\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n ** module id = 5\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 52a4acfee09d3e228d51","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\"","webpack:///./~/react/lib/emptyFunction.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;;GAEE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACnC,GAAE;;AAEF,EAAC,oBAAoB,EAAE,WAAW;;GAEhC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,GAAE;;EAED,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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 52a4acfee09d3e228d51\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react/addons');\nvar emptyFunction = require('react/lib/emptyFunction');\nvar CX = React.addons.classSet;\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = !isTouchDevice ? e : e.touches[0];\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\t\t\n\t\tvar className = CX({\n\t\t\t'react-draggable': true,\n\t\t\t'react-draggable-dragging': this.state.dragging\n\t\t});\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn React.addons.cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\nfunction makeEmptyFunction(arg) {\n return function() {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function() { return this; };\nemptyFunction.thatReturnsArgument = function(arg) { return arg; };\n\nmodule.exports = emptyFunction;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/emptyFunction.js\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 6c1e7496..18b1f612 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=isTouchDevice?e.touches[0]:e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}var React=__webpack_require__(2),emptyFunction=__webpack_require__(3),isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window,dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:dragPoint.clientX,offsetY:dragPoint.clientY,startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);Array.isArray(this.props.grid)&&(clientX=Math.abs(clientX-this.state.clientX)>=this.props.grid[0]?clientX:this.state.clientX,clientY=Math.abs(clientY-this.state.clientY)>=this.props.grid[1]?clientY:this.state.clientY),this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};return this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex),React.addons.cloneWithProps(React.Children.only(this.props.children),{style:style,className:"react-draggable",onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){function makeEmptyFunction(arg){return function(){return arg}}function emptyFunction(){}var copyProperties=__webpack_require__(4);copyProperties(emptyFunction,{thatReturns:makeEmptyFunction,thatReturnsFalse:makeEmptyFunction(!1),thatReturnsTrue:makeEmptyFunction(!0),thatReturnsNull:makeEmptyFunction(null),thatReturnsThis:function(){return this},thatReturnsArgument:function(arg){return arg}}),module.exports=emptyFunction},function(module,exports,__webpack_require__){(function(process){function copyProperties(obj,a,b,c,d,e,f){if(obj=obj||{},"production"!==process.env.NODE_ENV&&f)throw new Error("Too many arguments passed to copyProperties");for(var v,args=[a,b,c,d,e],ii=0;args[ii];){v=args[ii++];for(var k in v)obj[k]=v[k];v.hasOwnProperty&&v.hasOwnProperty("toString")&&"undefined"!=typeof v.toString&&obj.toString!==v.toString&&(obj.toString=v.toString)}return obj}module.exports=copyProperties}).call(exports,__webpack_require__(5))},function(module){function noop(){}var process=module.exports={};process.nextTick=function(){var canSetImmediate="undefined"!=typeof window&&window.setImmediate,canPost="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener("message",function(ev){var source=ev.source;if((source===window||null===source)&&"process-tick"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage("process-tick","*")}}return function(fn){setTimeout(fn,0)}}(),process.title="browser",process.browser=!0,process.env={},process.argv=[],process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(){throw new Error("process.chdir is not supported")}}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=isTouchDevice?e.touches[0]:e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}var React=__webpack_require__(2),emptyFunction=__webpack_require__(3),CX=React.addons.classSet;if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=CX({"react-draggable":!0,"react-draggable-dragging":this.state.dragging});return React.addons.cloneWithProps(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module){function makeEmptyFunction(arg){return function(){return arg}}function emptyFunction(){}emptyFunction.thatReturns=makeEmptyFunction,emptyFunction.thatReturnsFalse=makeEmptyFunction(!1),emptyFunction.thatReturnsTrue=makeEmptyFunction(!0),emptyFunction.thatReturnsNull=makeEmptyFunction(null),emptyFunction.thatReturnsThis=function(){return this},emptyFunction.thatReturnsArgument=function(arg){return arg},module.exports=emptyFunction}])}); //# sourceMappingURL=react-draggable.min.map \ No newline at end of file diff --git a/dist/react-draggable.min.map b/dist/react-draggable.min.map index 6e15dc46..eb383382 100644 --- a/dist/react-draggable.min.map +++ b/dist/react-draggable.min.map @@ -1 +1 @@ -{"version":3,"file":"dist/react-draggable.min.js","sources":["dist/react-draggable.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createUIEvent","draggable","position","top","state","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","element","length","apply","matchesSelector","el","selector","method","getControlPosition","e","isTouchDevice","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","React","emptyFunction","window","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","handle","string","cancel","grid","arrayOf","number","object","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","x","y","NaN","getInitialState","dragging","startX","startY","offsetX","offsetY","handleDragStart","node","getDOMNode","target","dragPoint","setState","parseInt","style","Array","isArray","Math","abs","render","isNaN","addons","cloneWithProps","Children","only","children","className","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","makeEmptyFunction","arg","copyProperties","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","process","obj","a","b","d","f","env","NODE_ENV","Error","v","args","ii","k","hasOwnProperty","noop","nextTick","canSetImmediate","setImmediate","canPost","postMessage","queue","source","data","stopPropagation","fn","shift","push","setTimeout","title","browser","argv","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dist/react-draggable.min.js","sources":["dist/react-draggable.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createUIEvent","draggable","position","top","state","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","element","length","apply","matchesSelector","el","selector","method","getControlPosition","e","isTouchDevice","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","React","emptyFunction","CX","addons","classSet","window","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","handle","string","cancel","grid","arrayOf","number","object","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","x","y","NaN","getInitialState","dragging","startX","startY","offsetX","offsetY","handleDragStart","node","getDOMNode","target","dragPoint","setState","parseInt","style","Array","isArray","directionX","directionY","Math","abs","render","isNaN","className","react-draggable","react-draggable-dragging","cloneWithProps","Children","only","children","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","makeEmptyFunction","arg","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 744c92ae..6a5eac90 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.3.0", + "version": "0.4.0", "description": "React draggable component", "main": "index.js", "scripts": { From 5b55f6476ac1b5c498fde8c76fce95727f30950a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 17 Jan 2015 13:42:10 +0100 Subject: [PATCH 006/412] Fix an issue where browser may be detected as touch-enabled but touch event isn't thrown. This was causing https://github.com/STRML/react-grid-layout/issues/16#issuecomment-70362986 --- lib/draggable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/draggable.js b/lib/draggable.js index 11da5df6..ce35eec0 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -89,7 +89,7 @@ var dragEventFor = (function () { * get {clientX, clientY} positions of control * */ function getControlPosition(e) { - var position = !isTouchDevice ? e : e.touches[0]; + var position = (e.touches && e.touches[0]) || e; return { clientX: position.clientX, clientY: position.clientY From 47e83b4705ec27507c923c28e758a697a91c6747 Mon Sep 17 00:00:00 2001 From: Joel Brandt Date: Thu, 30 Apr 2015 07:01:11 -0700 Subject: [PATCH 007/412] add MIT LICENSE file --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..3040bf8b --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +(MIT License) + +Copyright (c) 2014 Matt Zabriskie. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. From 4ba3c90a29c016d00d4495cf32c88fdf7ea9cad6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 11:23:25 -0500 Subject: [PATCH 008/412] Remove react/addons and create className directly. Fixes #42 --- lib/draggable.js | 13 +++++++------ webpack.config.js | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index ce35eec0..3cb3c832 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -1,7 +1,7 @@ 'use strict'; /** @jsx React.DOM */ -var React = require('react/addons'); +var React = require('react'); var emptyFunction = require('react/lib/emptyFunction'); var CX = React.addons.classSet; @@ -446,11 +446,12 @@ module.exports = React.createClass({ if (this.state.dragging && !isNaN(this.props.zIndex)) { style.zIndex = this.props.zIndex; } - - var className = CX({ - 'react-draggable': true, - 'react-draggable-dragging': this.state.dragging - }); + + var className = 'react-draggable'; + if (this.state.dragging) { + className += ' react-draggable-dragging'; + } + // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.addons.cloneWithProps(React.Children.only(this.props.children), { diff --git a/webpack.config.js b/webpack.config.js index 52b63fb1..9b965bbf 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -7,7 +7,7 @@ module.exports = { libraryTarget: 'umd' }, externals: { - 'react/addons': 'React' + 'react': 'React' }, module: { loaders: [ From 0026b9f2b2437d415ca944d59e9acb64eb755a8f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 11:25:20 -0500 Subject: [PATCH 009/412] 0.4.1 --- dist/react-draggable.js | 15 ++++++++------- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 190ca406..38354434 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -152,7 +152,7 @@ return /******/ (function(modules) { // webpackBootstrap * get {clientX, clientY} positions of control * */ function getControlPosition(e) { - var position = !isTouchDevice ? e : e.touches[0]; + var position = (e.touches && e.touches[0]) || e; return { clientX: position.clientX, clientY: position.clientY @@ -509,11 +509,12 @@ return /******/ (function(modules) { // webpackBootstrap if (this.state.dragging && !isNaN(this.props.zIndex)) { style.zIndex = this.props.zIndex; } - - var className = CX({ - 'react-draggable': true, - 'react-draggable-dragging': this.state.dragging - }); + + var className = 'react-draggable'; + if (this.state.dragging) { + className += ' react-draggable-dragging'; + } + // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.addons.cloneWithProps(React.Children.only(this.props.children), { @@ -544,7 +545,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { /** - * Copyright 2013-2014, Facebook, Inc. + * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the diff --git a/dist/react-draggable.map b/dist/react-draggable.map index f5160196..1651267d 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 52a4acfee09d3e228d51","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\"","webpack:///./~/react/lib/emptyFunction.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;;GAEE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACnC,GAAE;;AAEF,EAAC,oBAAoB,EAAE,WAAW;;GAEhC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,GAAE;;EAED,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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 52a4acfee09d3e228d51\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react/addons');\nvar emptyFunction = require('react/lib/emptyFunction');\nvar CX = React.addons.classSet;\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = !isTouchDevice ? e : e.touches[0];\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\t\t\n\t\tvar className = CX({\n\t\t\t'react-draggable': true,\n\t\t\t'react-draggable-dragging': this.state.dragging\n\t\t});\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn React.addons.cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\nfunction makeEmptyFunction(arg) {\n return function() {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function() { return this; };\nemptyFunction.thatReturnsArgument = function(arg) { return arg; };\n\nmodule.exports = emptyFunction;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/emptyFunction.js\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1cd907495832026d30f5","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\"","webpack:///./~/react/lib/emptyFunction.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;;GAEE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACnC,GAAE;;AAEF,EAAC,oBAAoB,EAAE,WAAW;;GAEhC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,G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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 1cd907495832026d30f5\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react');\nvar emptyFunction = require('react/lib/emptyFunction');\nvar CX = React.addons.classSet;\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\n\t\tvar className = 'react-draggable';\n\t\tif (this.state.dragging) {\n\t\t\tclassName += ' react-draggable-dragging';\n\t\t}\n\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn React.addons.cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\nfunction makeEmptyFunction(arg) {\n return function() {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function() { return this; };\nemptyFunction.thatReturnsArgument = function(arg) { return arg; };\n\nmodule.exports = emptyFunction;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/emptyFunction.js\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 18b1f612..dd6b7580 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=isTouchDevice?e.touches[0]:e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}var React=__webpack_require__(2),emptyFunction=__webpack_require__(3),CX=React.addons.classSet;if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=CX({"react-draggable":!0,"react-draggable-dragging":this.state.dragging});return React.addons.cloneWithProps(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module){function makeEmptyFunction(arg){return function(){return arg}}function emptyFunction(){}emptyFunction.thatReturns=makeEmptyFunction,emptyFunction.thatReturnsFalse=makeEmptyFunction(!1),emptyFunction.thatReturnsTrue=makeEmptyFunction(!0),emptyFunction.thatReturnsNull=makeEmptyFunction(null),emptyFunction.thatReturnsThis=function(){return this},emptyFunction.thatReturnsArgument=function(arg){return arg},module.exports=emptyFunction}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}{var React=__webpack_require__(2),emptyFunction=__webpack_require__(3);React.addons.classSet}if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className="react-draggable";return this.state.dragging&&(className+=" react-draggable-dragging"),React.addons.cloneWithProps(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module){function makeEmptyFunction(arg){return function(){return arg}}function emptyFunction(){}emptyFunction.thatReturns=makeEmptyFunction,emptyFunction.thatReturnsFalse=makeEmptyFunction(!1),emptyFunction.thatReturnsTrue=makeEmptyFunction(!0),emptyFunction.thatReturnsNull=makeEmptyFunction(null),emptyFunction.thatReturnsThis=function(){return this},emptyFunction.thatReturnsArgument=function(arg){return arg},module.exports=emptyFunction}])}); //# sourceMappingURL=react-draggable.min.map \ No newline at end of file diff --git a/dist/react-draggable.min.map b/dist/react-draggable.min.map index eb383382..8099407d 100644 --- a/dist/react-draggable.min.map +++ b/dist/react-draggable.min.map @@ -1 +1 @@ -{"version":3,"file":"dist/react-draggable.min.js","sources":["dist/react-draggable.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createUIEvent","draggable","position","top","state","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","element","length","apply","matchesSelector","el","selector","method","getControlPosition","e","isTouchDevice","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","React","emptyFunction","CX","addons","classSet","window","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","handle","string","cancel","grid","arrayOf","number","object","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","x","y","NaN","getInitialState","dragging","startX","startY","offsetX","offsetY","handleDragStart","node","getDOMNode","target","dragPoint","setState","parseInt","style","Array","isArray","directionX","directionY","Math","abs","render","isNaN","className","react-draggable","react-draggable-dragging","cloneWithProps","Children","only","children","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","makeEmptyFunction","arg","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dist/react-draggable.min.js","sources":["dist/react-draggable.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createUIEvent","draggable","position","top","state","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","element","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","React","emptyFunction","addons","classSet","window","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","handle","string","cancel","grid","arrayOf","number","object","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","x","y","NaN","getInitialState","dragging","startX","startY","offsetX","offsetY","handleDragStart","node","getDOMNode","target","dragPoint","setState","parseInt","style","Array","isArray","directionX","directionY","Math","abs","render","isNaN","className","cloneWithProps","Children","only","children","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","makeEmptyFunction","arg","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 6a5eac90..7e74a5c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.4.0", + "version": "0.4.1", "description": "React draggable component", "main": "index.js", "scripts": { From 587a0ae05cd134ed0cae68417246ce878d4e3c4c Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 16:09:58 -0500 Subject: [PATCH 010/412] Update CHANGELOG and bower version --- CHANGELOG.md | 6 ++++++ bower.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82cf4a82..0aea47d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,3 +31,9 @@ - Adding dragging className - Adding reactify support for browserify - Fixing issue with server side rendering + +### 0.4.1 (Apr 30, 2015) + +- Remove react/addons dependency (now depending on `react` directly) +- Add MIT License file +- Fix an issue where browser may be detected as touch-enabled but touch event isn't thrown. diff --git a/bower.json b/bower.json index eeabb363..0951bb3d 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.4.0", + "version": "0.4.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" From 571821d774f09c5f59207ab83e9de8bc14d24afb Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 16:11:45 -0500 Subject: [PATCH 011/412] Add changelog link to README --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d733ffcb..e73bf66f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,13 @@ # react-draggable [![Build Status](https://travis-ci.org/mzabriskie/react-draggable.svg?branch=master)](https://travis-ci.org/mzabriskie/react-draggable) -React draggable component +A simple component for making elements draggable. + +[View the Changelog](CHANGELOG.md) + +## Demo + +http://mzabriskie.github.io/react-draggable/example/ + ## Installing @@ -10,10 +17,6 @@ $ npm install react-draggable $ bower install react-draggable ``` -## Demo - -http://mzabriskie.github.io/react-draggable/example/ - ## Example ```js @@ -98,4 +101,4 @@ React.renderComponent(, document.body); ## License -MIT \ No newline at end of file +MIT From 06915b1a11ec66363ca9c6f04b707a4286f4d97d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 16:39:46 -0500 Subject: [PATCH 012/412] Stub emptyFunction (no need for require) and remove unused classSet import. --- lib/draggable.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 3cb3c832..b29e2015 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -2,8 +2,7 @@ /** @jsx React.DOM */ var React = require('react'); -var emptyFunction = require('react/lib/emptyFunction'); -var CX = React.addons.classSet; +var emptyFunction = function(){}; function createUIEvent(draggable) { return { From bc11f767aa8b1c3c75c2729675c773989d097a56 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 16:40:01 -0500 Subject: [PATCH 013/412] Point browser builds to dist so it can be included directly. Fixes #45 without requiring reactify dep. --- package.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/package.json b/package.json index 7e74a5c8..06fab6b6 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,7 @@ "test": "script/test --browsers Firefox --single-run", "start": "script/build" }, - "browserify": { - "transform": [ - "reactify" - ] - }, + "browser": "dist/react-draggable.js", "repository": { "type": "git", "url": "https://github.com/mzabriskie/react-draggable.git" From acc0f3d6aacf7012104f211fd0c59484056a2e9d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 16:42:55 -0500 Subject: [PATCH 014/412] 0.4.2 --- CHANGELOG.md | 5 +++++ bower.json | 2 +- dist/react-draggable.js | 41 +----------------------------------- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 7 files changed, 11 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0aea47d9..98f0359a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,3 +37,8 @@ - Remove react/addons dependency (now depending on `react` directly) - Add MIT License file - Fix an issue where browser may be detected as touch-enabled but touch event isn't thrown. + +### 0.4.2 (Apr 30, 2015) + +- Add `"browser"` config to package.json for browserify imports (fix #45). +- Remove unnecessary `emptyFunction` and `React.addons.classSet` imports. diff --git a/bower.json b/bower.json index 0951bb3d..dbfba7cb 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.4.1", + "version": "0.4.2", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 38354434..aa89c398 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -65,8 +65,7 @@ return /******/ (function(modules) { // webpackBootstrap /** @jsx React.DOM */ var React = __webpack_require__(2); - var emptyFunction = __webpack_require__(3); - var CX = React.addons.classSet; + var emptyFunction = function(){}; function createUIEvent(draggable) { return { @@ -540,44 +539,6 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = __WEBPACK_EXTERNAL_MODULE_2__; -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule emptyFunction - */ - - function makeEmptyFunction(arg) { - return function() { - return arg; - }; - } - - /** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ - function emptyFunction() {} - - emptyFunction.thatReturns = makeEmptyFunction; - emptyFunction.thatReturnsFalse = makeEmptyFunction(false); - emptyFunction.thatReturnsTrue = makeEmptyFunction(true); - emptyFunction.thatReturnsNull = makeEmptyFunction(null); - emptyFunction.thatReturnsThis = function() { return this; }; - emptyFunction.thatReturnsArgument = function(arg) { return arg; }; - - module.exports = emptyFunction; - - /***/ } /******/ ]) }); diff --git a/dist/react-draggable.map b/dist/react-draggable.map index 1651267d..ce83e872 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1cd907495832026d30f5","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\"","webpack:///./~/react/lib/emptyFunction.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;;GAEE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACnC,GAAE;;AAEF,EAAC,oBAAoB,EAAE,WAAW;;GAEhC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,G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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 1cd907495832026d30f5\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react');\nvar emptyFunction = require('react/lib/emptyFunction');\nvar CX = React.addons.classSet;\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\n\t\tvar className = 'react-draggable';\n\t\tif (this.state.dragging) {\n\t\t\tclassName += ' react-draggable-dragging';\n\t\t}\n\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn React.addons.cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\nfunction makeEmptyFunction(arg) {\n return function() {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function() { return this; };\nemptyFunction.thatReturnsArgument = function(arg) { return arg; };\n\nmodule.exports = emptyFunction;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/emptyFunction.js\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 300f832e840189067574","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\""],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wC;;;;;;;ACtCA,OAAM,CAAC,OAAO,GAAG,mBAAO,CAAC,CAAiB,CAAC,CAAC;;;;;;;ACA5C,aAAY,CAAC;;AAEb,sBAAqB;AACrB,KAAI,KAAK,GAAG,mBAAO,CAAC,CAAO,CAAC,CAAC;AAC7B,KAAI,aAAa,GAAG,UAAU,EAAE,CAAC;;AAEjC,UAAS,aAAa,CAAC,SAAS,EAAE;EACjC,OAAO;GACN,QAAQ,EAAE;IACT,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO;IAC5B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO;IAC7B;GACD,CAAC;AACH,EAAC;;AAED,UAAS,QAAQ,CAAC,SAAS,EAAE;EAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;IACpC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AAChC,EAAC;;AAED,UAAS,QAAQ,CAAC,SAAS,EAAE;EAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;IACpC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AAChC,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE;GACxB,OAAO,OAAO,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,mBAAmB;AACnG,EAAC;;AAED,sEAAqE;AACrE,UAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE;GACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;KAC1F,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC;IACnE;AACH,EAAC;;AAED,UAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE;GACrC,IAAI,MAAM,GAAG,WAAW,CAAC;KACvB,SAAS;KACT,uBAAuB;KACvB,oBAAoB;KACpB,mBAAmB;KACnB,kBAAkB;IACnB,EAAE,SAAS,MAAM,CAAC;KACjB,OAAO,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,IAAG,CAAC,CAAC;;GAEH,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACvC,EAAC;;AAED,4IAA2I;AAC3I,iEAAgE;AAChE,KAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;KAE/B,IAAI,aAAa,GAAG,KAAK,CAAC;AAC9B,EAAC,MAAM;;KAEH,IAAI,aAAa,GAAG,cAAc,IAAI,MAAM;AAChD,QAAO,mBAAmB,IAAI,MAAM,CAAC;;AAErC,EAAC;;AAED,0BAAyB;AACzB,6BAA4B;AAC5B,yEAAwE;AACxE,IAAG;;AAEH;;MAEK;AACL,KAAI,YAAY,GAAG,CAAC,YAAY;GAC9B,IAAI,SAAS,GAAG;KACd,KAAK,EAAE;OACL,KAAK,EAAE,YAAY;OACnB,IAAI,EAAE,WAAW;OACjB,GAAG,EAAE,UAAU;MAChB;KACD,KAAK,EAAE;OACL,KAAK,EAAE,WAAW;OAClB,IAAI,EAAE,WAAW;OACjB,GAAG,EAAE,SAAS;MACf;IACF,CAAC;GACF,OAAO,SAAS,CAAC,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AACtD,EAAC,GAAG,CAAC;;AAEL;;MAEK;AACL,UAAS,kBAAkB,CAAC,CAAC,EAAE;GAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GAChD,OAAO;KACL,OAAO,EAAE,QAAQ,CAAC,OAAO;KACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;IAC1B;AACH,EAAC;;AAED,UAAS,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;EACrC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;EACpB,IAAI,EAAE,CAAC,WAAW,EAAE;GACnB,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;GACtC,MAAM,IAAI,EAAE,CAAC,gBAAgB,EAAE;GAC/B,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;GAC1C,MAAM;GACN,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;GAC3B;AACF,EAAC;;AAED,UAAS,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;EACxC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;EACpB,IAAI,EAAE,CAAC,WAAW,EAAE;GACnB,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;GACtC,MAAM,IAAI,EAAE,CAAC,mBAAmB,EAAE;GAClC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;GAC7C,MAAM;GACN,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;GACxB;AACF,EAAC;;AAED,OAAM,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;AACnC,EAAC,WAAW,EAAE,WAAW;;AAEzB,EAAC,SAAS,EAAE;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;;GAEE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACnC,GAAE;;AAEF,EAAC,oBAAoB,EAAE,WAAW;;GAEhC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,GAAE;;EAED,eAAe,EAAE,YAAY;GAC5B,OAAO;IACN,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE;KACN,CAAC,EAAE,CAAC;KACJ,CAAC,EAAE,CAAC;KACJ;IACD,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;IACrB,WAAW,EAAE,aAAa;IAC1B,CAAC;AACJ,GAAE;;EAED,eAAe,EAAE,YAAY;AAC9B,GAAE,OAAO;;AAET,IAAG,QAAQ,EAAE,KAAK;AAClB;;AAEA,IAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;AACvB;;AAEA,IAAG,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AACzB;;IAEG,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;AACJ,GAAE;;AAEF,EAAC,eAAe,EAAE,UAAU,CAAC,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;;AAE5B,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC/B;;GAEE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;KACrE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;IACrE,OAAO;AACV,IAAG;;AAEH,KAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1C;;GAEE,IAAI,CAAC,QAAQ,CAAC;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;IACxC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;IACxC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IAC1C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;AAC5C,IAAG,CAAC,CAAC;AACL;;AAEA,GAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C;;GAEE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GACxD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5D,GAAE;;AAEF,EAAC,aAAa,EAAE,UAAU,CAAC,EAAE;;GAE3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;IACzB,OAAO;AACV,IAAG;AACH;;GAEE,IAAI,CAAC,QAAQ,CAAC;IACb,QAAQ,EAAE,KAAK;AAClB,IAAG,CAAC,CAAC;AACL;;AAEA,GAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C;;KAEI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACjE,GAAE;;EAED,UAAU,EAAE,UAAU,CAAC,EAAE;AAC1B,KAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1C;;KAEI,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACjF,KAAI,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACjF;;GAEE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;IACnC,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACxE,IAAG,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;IAErE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/E,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAC5E,QAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;;IAEvB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/E,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC1B,IAAG;AACH;;GAEE,IAAI,CAAC,QAAQ,CAAC;IACb,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;AACnB,IAAG,CAAC,CAAC;AACL;;GAEE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,GAAE;;EAED,MAAM,EAAE,YAAY;AACrB,GAAE,IAAI,KAAK,GAAG;;IAEX,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC;OAChB,IAAI,CAAC,KAAK,CAAC,OAAO;AACxB,OAAM,IAAI,CAAC,KAAK,CAAC,MAAM;AACvB;;IAEG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;OACjB,IAAI,CAAC,KAAK,CAAC,OAAO;OAClB,IAAI,CAAC,KAAK,CAAC,MAAM;AACvB,IAAG,CAAC;AACJ;;GAEE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;IACrD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACpC,IAAG;;GAED,IAAI,SAAS,GAAG,iBAAiB,CAAC;GAClC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;IACxB,SAAS,IAAI,2BAA2B,CAAC;AAC5C,IAAG;AACH;AACA;;GAEE,OAAO,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;IAC5E,KAAK,EAAE,KAAK;AACf,IAAG,SAAS,EAAE,SAAS;;IAEpB,WAAW,EAAE,IAAI,CAAC,eAAe;IACjC,YAAY,EAAE,SAAS,EAAE,CAAC;SACrB,EAAE,CAAC,cAAc,EAAE,CAAC;SACpB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3D,QAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;IAEf,SAAS,EAAE,IAAI,CAAC,aAAa;IAC7B,UAAU,EAAE,IAAI,CAAC,aAAa;IAC9B,CAAC,CAAC;GACH;EACD,CAAC,CAAC;;;;;;;ACrdH,gD","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 300f832e840189067574\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react');\nvar emptyFunction = function(){};\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\n\t\tvar className = 'react-draggable';\n\t\tif (this.state.dragging) {\n\t\t\tclassName += ' react-draggable-dragging';\n\t\t}\n\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn React.addons.cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index dd6b7580..d060aa51 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}{var React=__webpack_require__(2),emptyFunction=__webpack_require__(3);React.addons.classSet}if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className="react-draggable";return this.state.dragging&&(className+=" react-draggable-dragging"),React.addons.cloneWithProps(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module){function makeEmptyFunction(arg){return function(){return arg}}function emptyFunction(){}emptyFunction.thatReturns=makeEmptyFunction,emptyFunction.thatReturnsFalse=makeEmptyFunction(!1),emptyFunction.thatReturnsTrue=makeEmptyFunction(!0),emptyFunction.thatReturnsNull=makeEmptyFunction(null),emptyFunction.thatReturnsThis=function(){return this},emptyFunction.thatReturnsArgument=function(arg){return arg},module.exports=emptyFunction}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}var React=__webpack_require__(2),emptyFunction=function(){};if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className="react-draggable";return this.state.dragging&&(className+=" react-draggable-dragging"),React.addons.cloneWithProps(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__}])}); //# sourceMappingURL=react-draggable.min.map \ No newline at end of file diff --git a/dist/react-draggable.min.map b/dist/react-draggable.min.map index 8099407d..8782d7b4 100644 --- a/dist/react-draggable.min.map +++ b/dist/react-draggable.min.map @@ -1 +1 @@ -{"version":3,"file":"dist/react-draggable.min.js","sources":["dist/react-draggable.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createUIEvent","draggable","position","top","state","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","element","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","React","emptyFunction","addons","classSet","window","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","handle","string","cancel","grid","arrayOf","number","object","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","x","y","NaN","getInitialState","dragging","startX","startY","offsetX","offsetY","handleDragStart","node","getDOMNode","target","dragPoint","setState","parseInt","style","Array","isArray","directionX","directionY","Math","abs","render","isNaN","className","cloneWithProps","Children","only","children","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","makeEmptyFunction","arg","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dist/react-draggable.min.js","sources":["dist/react-draggable.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createUIEvent","draggable","position","top","state","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","element","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","React","emptyFunction","window","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","handle","string","cancel","grid","arrayOf","number","object","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","x","y","NaN","getInitialState","dragging","startX","startY","offsetX","offsetY","handleDragStart","node","getDOMNode","target","dragPoint","setState","parseInt","style","Array","isArray","directionX","directionY","Math","abs","render","isNaN","className","addons","cloneWithProps","Children","only","children","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 06fab6b6..dcf06870 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.4.1", + "version": "0.4.2", "description": "React draggable component", "main": "index.js", "scripts": { From 34f55eb08c9f75a54da3130a084761af29fa4de6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 17:34:37 -0500 Subject: [PATCH 015/412] Fix addons error and test. Remove react/addons import from draggable.spec.js so tests grab addons error. --- lib/draggable.js | 3 ++- specs/draggable.spec.js | 7 +++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index b29e2015..0a133d7e 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -3,6 +3,7 @@ /** @jsx React.DOM */ var React = require('react'); var emptyFunction = function(){}; +var cloneWithProps = require('react/lib/cloneWithProps'); function createUIEvent(draggable) { return { @@ -453,7 +454,7 @@ module.exports = React.createClass({ // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) - return React.addons.cloneWithProps(React.Children.only(this.props.children), { + return cloneWithProps(React.Children.only(this.props.children), { style: style, className: className, diff --git a/specs/draggable.spec.js b/specs/draggable.spec.js index 389418a9..43f17855 100644 --- a/specs/draggable.spec.js +++ b/specs/draggable.spec.js @@ -1,6 +1,5 @@ -/** @jsx React.DOM */ -var React = require('react/addons'); -var TestUtils = React.addons.TestUtils; +var React = require('react'); +var TestUtils = require('react/lib/ReactTestUtils'); var Draggable = require('../index'); describe('react-draggable', function () { @@ -155,4 +154,4 @@ describe('react-draggable', function () { expect(error).toEqual(true); }); }); -}); \ No newline at end of file +}); From cbb88754d084814318e8cc29613348bcfa1fb02d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 18:02:55 -0500 Subject: [PATCH 016/412] 0.4.3 --- CHANGELOG.md | 4 + bower.json | 2 +- dist/react-draggable.js | 970 ++++++++++++++++++++++++++++++++++- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 7 files changed, 978 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98f0359a..345a25c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,3 +42,7 @@ - Add `"browser"` config to package.json for browserify imports (fix #45). - Remove unnecessary `emptyFunction` and `React.addons.classSet` imports. + +### 0.4.3 (Apr 30, 2015) + +- Fix React.addons error caused by faulty test. diff --git a/bower.json b/bower.json index dbfba7cb..e54eec7f 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.4.2", + "version": "0.4.3", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index aa89c398..e980bbac 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -66,6 +66,7 @@ return /******/ (function(modules) { // webpackBootstrap /** @jsx React.DOM */ var React = __webpack_require__(2); var emptyFunction = function(){}; + var cloneWithProps = __webpack_require__(3); function createUIEvent(draggable) { return { @@ -516,7 +517,7 @@ return /******/ (function(modules) { // webpackBootstrap // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) - return React.addons.cloneWithProps(React.Children.only(this.props.children), { + return cloneWithProps(React.Children.only(this.props.children), { style: style, className: className, @@ -539,6 +540,973 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = __WEBPACK_EXTERNAL_MODULE_2__; +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @typechecks static-only + * @providesModule cloneWithProps + */ + + 'use strict'; + + var ReactElement = __webpack_require__(4); + var ReactPropTransferer = __webpack_require__(5); + + var keyOf = __webpack_require__(6); + var warning = __webpack_require__(7); + + var CHILDREN_PROP = keyOf({children: null}); + + /** + * Sometimes you want to change the props of a child passed to you. Usually + * this is to add a CSS class. + * + * @param {ReactElement} child child element you'd like to clone + * @param {object} props props you'd like to modify. className and style will be + * merged automatically. + * @return {ReactElement} a clone of child with props merged in. + */ + function cloneWithProps(child, props) { + if ("production" !== process.env.NODE_ENV) { + ("production" !== process.env.NODE_ENV ? warning( + !child.ref, + 'You are calling cloneWithProps() on a child with a ref. This is ' + + 'dangerous because you\'re creating a new child which will not be ' + + 'added as a ref to its parent.' + ) : null); + } + + var newProps = ReactPropTransferer.mergeProps(props, child.props); + + // Use `child.props.children` if it is provided. + if (!newProps.hasOwnProperty(CHILDREN_PROP) && + child.props.hasOwnProperty(CHILDREN_PROP)) { + newProps.children = child.props.children; + } + + // The current API doesn't retain _owner and _context, which is why this + // doesn't use ReactElement.cloneAndReplaceProps. + return ReactElement.createElement(child.type, newProps); + } + + module.exports = cloneWithProps; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactElement + */ + + 'use strict'; + + var ReactContext = __webpack_require__(9); + var ReactCurrentOwner = __webpack_require__(10); + + var assign = __webpack_require__(11); + var warning = __webpack_require__(7); + + var RESERVED_PROPS = { + key: true, + ref: true + }; + + /** + * Warn for mutations. + * + * @internal + * @param {object} object + * @param {string} key + */ + function defineWarningProperty(object, key) { + Object.defineProperty(object, key, { + + configurable: false, + enumerable: true, + + get: function() { + if (!this._store) { + return null; + } + return this._store[key]; + }, + + set: function(value) { + ("production" !== process.env.NODE_ENV ? warning( + false, + 'Don\'t set the %s property of the React element. Instead, ' + + 'specify the correct value when initially creating the element.', + key + ) : null); + this._store[key] = value; + } + + }); + } + + /** + * This is updated to true if the membrane is successfully created. + */ + var useMutationMembrane = false; + + /** + * Warn for mutations. + * + * @internal + * @param {object} element + */ + function defineMutationMembrane(prototype) { + try { + var pseudoFrozenProperties = { + props: true + }; + for (var key in pseudoFrozenProperties) { + defineWarningProperty(prototype, key); + } + useMutationMembrane = true; + } catch (x) { + // IE will fail on defineProperty + } + } + + /** + * Base constructor for all React elements. This is only used to make this + * work with a dynamic instanceof check. Nothing should live on this prototype. + * + * @param {*} type + * @param {string|object} ref + * @param {*} key + * @param {*} props + * @internal + */ + var ReactElement = function(type, key, ref, owner, context, props) { + // Built-in properties that belong on the element + this.type = type; + this.key = key; + this.ref = ref; + + // Record the component responsible for creating this element. + this._owner = owner; + + // TODO: Deprecate withContext, and then the context becomes accessible + // through the owner. + this._context = context; + + if ("production" !== process.env.NODE_ENV) { + // The validation flag and props are currently mutative. We put them on + // an external backing store so that we can freeze the whole object. + // This can be replaced with a WeakMap once they are implemented in + // commonly used development environments. + this._store = {props: props, originalProps: assign({}, props)}; + + // To make comparing ReactElements easier for testing purposes, we make + // the validation flag non-enumerable (where possible, which should + // include every environment we run tests in), so the test framework + // ignores it. + try { + Object.defineProperty(this._store, 'validated', { + configurable: false, + enumerable: false, + writable: true + }); + } catch (x) { + } + this._store.validated = false; + + // We're not allowed to set props directly on the object so we early + // return and rely on the prototype membrane to forward to the backing + // store. + if (useMutationMembrane) { + Object.freeze(this); + return; + } + } + + this.props = props; + }; + + // We intentionally don't expose the function on the constructor property. + // ReactElement should be indistinguishable from a plain object. + ReactElement.prototype = { + _isReactElement: true + }; + + if ("production" !== process.env.NODE_ENV) { + defineMutationMembrane(ReactElement.prototype); + } + + ReactElement.createElement = function(type, config, children) { + var propName; + + // Reserved names are extracted + var props = {}; + + var key = null; + var ref = null; + + if (config != null) { + ref = config.ref === undefined ? null : config.ref; + key = config.key === undefined ? null : '' + config.key; + // Remaining properties are added to a new props object + for (propName in config) { + if (config.hasOwnProperty(propName) && + !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config[propName]; + } + } + } + + // Children can be more than one argument, and those are transferred onto + // the newly allocated props object. + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 2]; + } + props.children = childArray; + } + + // Resolve default props + if (type && type.defaultProps) { + var defaultProps = type.defaultProps; + for (propName in defaultProps) { + if (typeof props[propName] === 'undefined') { + props[propName] = defaultProps[propName]; + } + } + } + + return new ReactElement( + type, + key, + ref, + ReactCurrentOwner.current, + ReactContext.current, + props + ); + }; + + ReactElement.createFactory = function(type) { + var factory = ReactElement.createElement.bind(null, type); + // Expose the type on the factory and the prototype so that it can be + // easily accessed on elements. E.g. .type === Foo.type. + // This should not be named `constructor` since this may not be the function + // that created the element, and it may not even be a constructor. + // Legacy hook TODO: Warn if this is accessed + factory.type = type; + return factory; + }; + + ReactElement.cloneAndReplaceProps = function(oldElement, newProps) { + var newElement = new ReactElement( + oldElement.type, + oldElement.key, + oldElement.ref, + oldElement._owner, + oldElement._context, + newProps + ); + + if ("production" !== process.env.NODE_ENV) { + // If the key on the original is valid, then the clone is valid + newElement._store.validated = oldElement._store.validated; + } + return newElement; + }; + + ReactElement.cloneElement = function(element, config, children) { + var propName; + + // Original props are copied + var props = assign({}, element.props); + + // Reserved names are extracted + var key = element.key; + var ref = element.ref; + + // Owner will be preserved, unless ref is overridden + var owner = element._owner; + + if (config != null) { + if (config.ref !== undefined) { + // Silently steal the ref from the parent. + ref = config.ref; + owner = ReactCurrentOwner.current; + } + if (config.key !== undefined) { + key = '' + config.key; + } + // Remaining properties override existing props + for (propName in config) { + if (config.hasOwnProperty(propName) && + !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config[propName]; + } + } + } + + // Children can be more than one argument, and those are transferred onto + // the newly allocated props object. + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 2]; + } + props.children = childArray; + } + + return new ReactElement( + element.type, + key, + ref, + owner, + element._context, + props + ); + }; + + /** + * @param {?object} object + * @return {boolean} True if `object` is a valid component. + * @final + */ + ReactElement.isValidElement = function(object) { + // ReactTestUtils is often used outside of beforeEach where as React is + // within it. This leads to two different instances of React on the same + // page. To identify a element from a different React instance we use + // a flag instead of an instanceof check. + var isElement = !!(object && object._isReactElement); + // if (isElement && !(object instanceof ReactElement)) { + // This is an indicator that you're using multiple versions of React at the + // same time. This will screw with ownership and stuff. Fix it, please. + // TODO: We could possibly warn here. + // } + return isElement; + }; + + module.exports = ReactElement; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactPropTransferer + */ + + 'use strict'; + + var assign = __webpack_require__(11); + var emptyFunction = __webpack_require__(12); + var joinClasses = __webpack_require__(13); + + /** + * Creates a transfer strategy that will merge prop values using the supplied + * `mergeStrategy`. If a prop was previously unset, this just sets it. + * + * @param {function} mergeStrategy + * @return {function} + */ + function createTransferStrategy(mergeStrategy) { + return function(props, key, value) { + if (!props.hasOwnProperty(key)) { + props[key] = value; + } else { + props[key] = mergeStrategy(props[key], value); + } + }; + } + + var transferStrategyMerge = createTransferStrategy(function(a, b) { + // `merge` overrides the first object's (`props[key]` above) keys using the + // second object's (`value`) keys. An object's style's existing `propA` would + // get overridden. Flip the order here. + return assign({}, b, a); + }); + + /** + * Transfer strategies dictate how props are transferred by `transferPropsTo`. + * NOTE: if you add any more exceptions to this list you should be sure to + * update `cloneWithProps()` accordingly. + */ + var TransferStrategies = { + /** + * Never transfer `children`. + */ + children: emptyFunction, + /** + * Transfer the `className` prop by merging them. + */ + className: createTransferStrategy(joinClasses), + /** + * Transfer the `style` prop (which is an object) by merging them. + */ + style: transferStrategyMerge + }; + + /** + * Mutates the first argument by transferring the properties from the second + * argument. + * + * @param {object} props + * @param {object} newProps + * @return {object} + */ + function transferInto(props, newProps) { + for (var thisKey in newProps) { + if (!newProps.hasOwnProperty(thisKey)) { + continue; + } + + var transferStrategy = TransferStrategies[thisKey]; + + if (transferStrategy && TransferStrategies.hasOwnProperty(thisKey)) { + transferStrategy(props, thisKey, newProps[thisKey]); + } else if (!props.hasOwnProperty(thisKey)) { + props[thisKey] = newProps[thisKey]; + } + } + return props; + } + + /** + * ReactPropTransferer are capable of transferring props to another component + * using a `transferPropsTo` method. + * + * @class ReactPropTransferer + */ + var ReactPropTransferer = { + + /** + * Merge two props objects using TransferStrategies. + * + * @param {object} oldProps original props (they take precedence) + * @param {object} newProps new props to merge in + * @return {object} a new object containing both sets of props merged. + */ + mergeProps: function(oldProps, newProps) { + return transferInto(assign({}, oldProps), newProps); + } + + }; + + module.exports = ReactPropTransferer; + + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule keyOf + */ + + /** + * Allows extraction of a minified key. Let's the build system minify keys + * without loosing the ability to dynamically use key strings as values + * themselves. Pass in an object with a single key/val pair and it will return + * you the string key of that single record. Suppose you want to grab the + * value for a key 'className' inside of an object. Key/val minification may + * have aliased that key to be 'xa12'. keyOf({className: null}) will return + * 'xa12' in that case. Resolve keys you want to use once at startup time, then + * reuse those resolutions. + */ + var keyOf = function(oneKeyObj) { + var key; + for (key in oneKeyObj) { + if (!oneKeyObj.hasOwnProperty(key)) { + continue; + } + return key; + } + return null; + }; + + + module.exports = keyOf; + + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule warning + */ + + "use strict"; + + var emptyFunction = __webpack_require__(12); + + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var warning = emptyFunction; + + if ("production" !== process.env.NODE_ENV) { + warning = function(condition, format ) {for (var args=[],$__0=2,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]); + if (format === undefined) { + throw new Error( + '`warning(condition, format, ...args)` requires a warning ' + + 'message argument' + ); + } + + if (format.length < 10 || /^[s\W]*$/.test(format)) { + throw new Error( + 'The warning format should be able to uniquely identify this ' + + 'warning. Please, use a more descriptive format than: ' + format + ); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function() {return args[argIndex++];}); + console.warn(message); + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch(x) {} + } + }; + } + + module.exports = warning; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + // shim for using process in browser + + var process = module.exports = {}; + + process.nextTick = (function () { + var canSetImmediate = typeof window !== 'undefined' + && window.setImmediate; + var canMutationObserver = typeof window !== 'undefined' + && window.MutationObserver; + var canPost = typeof window !== 'undefined' + && window.postMessage && window.addEventListener + ; + + if (canSetImmediate) { + return function (f) { return window.setImmediate(f) }; + } + + var queue = []; + + if (canMutationObserver) { + var hiddenDiv = document.createElement("div"); + var observer = new MutationObserver(function () { + var queueList = queue.slice(); + queue.length = 0; + queueList.forEach(function (fn) { + fn(); + }); + }); + + observer.observe(hiddenDiv, { attributes: true }); + + return function nextTick(fn) { + if (!queue.length) { + hiddenDiv.setAttribute('yes', 'no'); + } + queue.push(fn); + }; + } + + if (canPost) { + window.addEventListener('message', function (ev) { + var source = ev.source; + if ((source === window || source === null) && ev.data === 'process-tick') { + ev.stopPropagation(); + if (queue.length > 0) { + var fn = queue.shift(); + fn(); + } + } + }, true); + + return function nextTick(fn) { + queue.push(fn); + window.postMessage('process-tick', '*'); + }; + } + + return function nextTick(fn) { + setTimeout(fn, 0); + }; + })(); + + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + // TODO(shtylman) + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactContext + */ + + 'use strict'; + + var assign = __webpack_require__(11); + var emptyObject = __webpack_require__(14); + var warning = __webpack_require__(7); + + var didWarn = false; + + /** + * Keeps track of the current context. + * + * The context is automatically passed down the component ownership hierarchy + * and is accessible via `this.context` on ReactCompositeComponents. + */ + var ReactContext = { + + /** + * @internal + * @type {object} + */ + current: emptyObject, + + /** + * Temporarily extends the current context while executing scopedCallback. + * + * A typical use case might look like + * + * render: function() { + * var children = ReactContext.withContext({foo: 'foo'}, () => ( + * + * )); + * return
{children}
; + * } + * + * @param {object} newContext New context to merge into the existing context + * @param {function} scopedCallback Callback to run with the new context + * @return {ReactComponent|array} + */ + withContext: function(newContext, scopedCallback) { + if ("production" !== process.env.NODE_ENV) { + ("production" !== process.env.NODE_ENV ? warning( + didWarn, + 'withContext is deprecated and will be removed in a future version. ' + + 'Use a wrapper component with getChildContext instead.' + ) : null); + + didWarn = true; + } + + var result; + var previousContext = ReactContext.current; + ReactContext.current = assign({}, previousContext, newContext); + try { + result = scopedCallback(); + } finally { + ReactContext.current = previousContext; + } + return result; + } + + }; + + module.exports = ReactContext; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactCurrentOwner + */ + + 'use strict'; + + /** + * Keeps track of the current owner. + * + * The current owner is the component who should own any components that are + * currently being constructed. + * + * The depth indicate how many composite components are above this render level. + */ + var ReactCurrentOwner = { + + /** + * @internal + * @type {ReactComponent} + */ + current: null + + }; + + module.exports = ReactCurrentOwner; + + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule Object.assign + */ + + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign + + 'use strict'; + + function assign(target, sources) { + if (target == null) { + throw new TypeError('Object.assign target cannot be null or undefined'); + } + + var to = Object(target); + var hasOwnProperty = Object.prototype.hasOwnProperty; + + for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) { + var nextSource = arguments[nextIndex]; + if (nextSource == null) { + continue; + } + + var from = Object(nextSource); + + // We don't currently support accessors nor proxies. Therefore this + // copy cannot throw. If we ever supported this then we must handle + // exceptions and side-effects. We don't support symbols so they won't + // be transferred. + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + } + + return to; + } + + module.exports = assign; + + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule emptyFunction + */ + + function makeEmptyFunction(arg) { + return function() { + return arg; + }; + } + + /** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ + function emptyFunction() {} + + emptyFunction.thatReturns = makeEmptyFunction; + emptyFunction.thatReturnsFalse = makeEmptyFunction(false); + emptyFunction.thatReturnsTrue = makeEmptyFunction(true); + emptyFunction.thatReturnsNull = makeEmptyFunction(null); + emptyFunction.thatReturnsThis = function() { return this; }; + emptyFunction.thatReturnsArgument = function(arg) { return arg; }; + + module.exports = emptyFunction; + + +/***/ }, +/* 13 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule joinClasses + * @typechecks static-only + */ + + 'use strict'; + + /** + * Combines multiple className strings into one. + * http://jsperf.com/joinclasses-args-vs-array + * + * @param {...?string} classes + * @return {string} + */ + function joinClasses(className/*, ... */) { + if (!className) { + className = ''; + } + var nextClass; + var argLength = arguments.length; + if (argLength > 1) { + for (var ii = 1; ii < argLength; ii++) { + nextClass = arguments[ii]; + if (nextClass) { + className = (className ? className + ' ' : '') + nextClass; + } + } + } + return className; + } + + module.exports = joinClasses; + + +/***/ }, +/* 14 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule emptyObject + */ + + "use strict"; + + var emptyObject = {}; + + if ("production" !== process.env.NODE_ENV) { + Object.freeze(emptyObject); + } + + module.exports = emptyObject; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) + /***/ } /******/ ]) }); diff --git a/dist/react-draggable.map b/dist/react-draggable.map index ce83e872..e5f6afb4 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 300f832e840189067574","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\""],"names":[],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 300f832e840189067574\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react');\nvar emptyFunction = function(){};\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\n\t\tvar className = 'react-draggable';\n\t\tif (this.state.dragging) {\n\t\t\tclassName += ' react-draggable-dragging';\n\t\t}\n\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn React.addons.cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap fb8b33fa04334fccba28","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\"","webpack:///./~/react/lib/cloneWithProps.js","webpack:///./~/react/lib/ReactElement.js","webpack:///./~/react/lib/ReactPropTransferer.js","webpack:///./~/react/lib/keyOf.js","webpack:///./~/react/lib/warning.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./~/react/lib/ReactContext.js","webpack:///./~/react/lib/ReactCurrentOwner.js","webpack:///./~/react/lib/Object.assign.js","webpack:///./~/react/lib/emptyFunction.js","webpack:///./~/react/lib/joinClasses.js","webpack:///./~/react/lib/emptyObject.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;;GAEE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACnC,GAAE;;AAEF,EAAC,oBAAoB,EAAE,WAAW;;GAEhC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,GAAE;;EAED,eAAe,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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap fb8b33fa04334fccba28\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react');\nvar emptyFunction = function(){};\nvar cloneWithProps = require('react/lib/cloneWithProps');\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\n\t\tvar className = 'react-draggable';\n\t\tif (this.state.dragging) {\n\t\t\tclassName += ' react-draggable-dragging';\n\t\t}\n\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n * @providesModule cloneWithProps\n */\n\n'use strict';\n\nvar ReactElement = require(\"./ReactElement\");\nvar ReactPropTransferer = require(\"./ReactPropTransferer\");\n\nvar keyOf = require(\"./keyOf\");\nvar warning = require(\"./warning\");\n\nvar CHILDREN_PROP = keyOf({children: null});\n\n/**\n * Sometimes you want to change the props of a child passed to you. Usually\n * this is to add a CSS class.\n *\n * @param {ReactElement} child child element you'd like to clone\n * @param {object} props props you'd like to modify. className and style will be\n * merged automatically.\n * @return {ReactElement} a clone of child with props merged in.\n */\nfunction cloneWithProps(child, props) {\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n !child.ref,\n 'You are calling cloneWithProps() on a child with a ref. This is ' +\n 'dangerous because you\\'re creating a new child which will not be ' +\n 'added as a ref to its parent.'\n ) : null);\n }\n\n var newProps = ReactPropTransferer.mergeProps(props, child.props);\n\n // Use `child.props.children` if it is provided.\n if (!newProps.hasOwnProperty(CHILDREN_PROP) &&\n child.props.hasOwnProperty(CHILDREN_PROP)) {\n newProps.children = child.props.children;\n }\n\n // The current API doesn't retain _owner and _context, which is why this\n // doesn't use ReactElement.cloneAndReplaceProps.\n return ReactElement.createElement(child.type, newProps);\n}\n\nmodule.exports = cloneWithProps;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/cloneWithProps.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar ReactContext = require(\"./ReactContext\");\nvar ReactCurrentOwner = require(\"./ReactCurrentOwner\");\n\nvar assign = require(\"./Object.assign\");\nvar warning = require(\"./warning\");\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true\n};\n\n/**\n * Warn for mutations.\n *\n * @internal\n * @param {object} object\n * @param {string} key\n */\nfunction defineWarningProperty(object, key) {\n Object.defineProperty(object, key, {\n\n configurable: false,\n enumerable: true,\n\n get: function() {\n if (!this._store) {\n return null;\n }\n return this._store[key];\n },\n\n set: function(value) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'Don\\'t set the %s property of the React element. Instead, ' +\n 'specify the correct value when initially creating the element.',\n key\n ) : null);\n this._store[key] = value;\n }\n\n });\n}\n\n/**\n * This is updated to true if the membrane is successfully created.\n */\nvar useMutationMembrane = false;\n\n/**\n * Warn for mutations.\n *\n * @internal\n * @param {object} element\n */\nfunction defineMutationMembrane(prototype) {\n try {\n var pseudoFrozenProperties = {\n props: true\n };\n for (var key in pseudoFrozenProperties) {\n defineWarningProperty(prototype, key);\n }\n useMutationMembrane = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\n/**\n * Base constructor for all React elements. This is only used to make this\n * work with a dynamic instanceof check. Nothing should live on this prototype.\n *\n * @param {*} type\n * @param {string|object} ref\n * @param {*} key\n * @param {*} props\n * @internal\n */\nvar ReactElement = function(type, key, ref, owner, context, props) {\n // Built-in properties that belong on the element\n this.type = type;\n this.key = key;\n this.ref = ref;\n\n // Record the component responsible for creating this element.\n this._owner = owner;\n\n // TODO: Deprecate withContext, and then the context becomes accessible\n // through the owner.\n this._context = context;\n\n if (\"production\" !== process.env.NODE_ENV) {\n // The validation flag and props are currently mutative. We put them on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n this._store = {props: props, originalProps: assign({}, props)};\n\n // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n try {\n Object.defineProperty(this._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true\n });\n } catch (x) {\n }\n this._store.validated = false;\n\n // We're not allowed to set props directly on the object so we early\n // return and rely on the prototype membrane to forward to the backing\n // store.\n if (useMutationMembrane) {\n Object.freeze(this);\n return;\n }\n }\n\n this.props = props;\n};\n\n// We intentionally don't expose the function on the constructor property.\n// ReactElement should be indistinguishable from a plain object.\nReactElement.prototype = {\n _isReactElement: true\n};\n\nif (\"production\" !== process.env.NODE_ENV) {\n defineMutationMembrane(ReactElement.prototype);\n}\n\nReactElement.createElement = function(type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n\n if (config != null) {\n ref = config.ref === undefined ? null : config.ref;\n key = config.key === undefined ? null : '' + config.key;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (config.hasOwnProperty(propName) &&\n !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (typeof props[propName] === 'undefined') {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n return new ReactElement(\n type,\n key,\n ref,\n ReactCurrentOwner.current,\n ReactContext.current,\n props\n );\n};\n\nReactElement.createFactory = function(type) {\n var factory = ReactElement.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. .type === Foo.type.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n // Legacy hook TODO: Warn if this is accessed\n factory.type = type;\n return factory;\n};\n\nReactElement.cloneAndReplaceProps = function(oldElement, newProps) {\n var newElement = new ReactElement(\n oldElement.type,\n oldElement.key,\n oldElement.ref,\n oldElement._owner,\n oldElement._context,\n newProps\n );\n\n if (\"production\" !== process.env.NODE_ENV) {\n // If the key on the original is valid, then the clone is valid\n newElement._store.validated = oldElement._store.validated;\n }\n return newElement;\n};\n\nReactElement.cloneElement = function(element, config, children) {\n var propName;\n\n // Original props are copied\n var props = assign({}, element.props);\n\n // Reserved names are extracted\n var key = element.key;\n var ref = element.ref;\n\n // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n\n if (config != null) {\n if (config.ref !== undefined) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (config.key !== undefined) {\n key = '' + config.key;\n }\n // Remaining properties override existing props\n for (propName in config) {\n if (config.hasOwnProperty(propName) &&\n !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n return new ReactElement(\n element.type,\n key,\n ref,\n owner,\n element._context,\n props\n );\n};\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function(object) {\n // ReactTestUtils is often used outside of beforeEach where as React is\n // within it. This leads to two different instances of React on the same\n // page. To identify a element from a different React instance we use\n // a flag instead of an instanceof check.\n var isElement = !!(object && object._isReactElement);\n // if (isElement && !(object instanceof ReactElement)) {\n // This is an indicator that you're using multiple versions of React at the\n // same time. This will screw with ownership and stuff. Fix it, please.\n // TODO: We could possibly warn here.\n // }\n return isElement;\n};\n\nmodule.exports = ReactElement;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactElement.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTransferer\n */\n\n'use strict';\n\nvar assign = require(\"./Object.assign\");\nvar emptyFunction = require(\"./emptyFunction\");\nvar joinClasses = require(\"./joinClasses\");\n\n/**\n * Creates a transfer strategy that will merge prop values using the supplied\n * `mergeStrategy`. If a prop was previously unset, this just sets it.\n *\n * @param {function} mergeStrategy\n * @return {function}\n */\nfunction createTransferStrategy(mergeStrategy) {\n return function(props, key, value) {\n if (!props.hasOwnProperty(key)) {\n props[key] = value;\n } else {\n props[key] = mergeStrategy(props[key], value);\n }\n };\n}\n\nvar transferStrategyMerge = createTransferStrategy(function(a, b) {\n // `merge` overrides the first object's (`props[key]` above) keys using the\n // second object's (`value`) keys. An object's style's existing `propA` would\n // get overridden. Flip the order here.\n return assign({}, b, a);\n});\n\n/**\n * Transfer strategies dictate how props are transferred by `transferPropsTo`.\n * NOTE: if you add any more exceptions to this list you should be sure to\n * update `cloneWithProps()` accordingly.\n */\nvar TransferStrategies = {\n /**\n * Never transfer `children`.\n */\n children: emptyFunction,\n /**\n * Transfer the `className` prop by merging them.\n */\n className: createTransferStrategy(joinClasses),\n /**\n * Transfer the `style` prop (which is an object) by merging them.\n */\n style: transferStrategyMerge\n};\n\n/**\n * Mutates the first argument by transferring the properties from the second\n * argument.\n *\n * @param {object} props\n * @param {object} newProps\n * @return {object}\n */\nfunction transferInto(props, newProps) {\n for (var thisKey in newProps) {\n if (!newProps.hasOwnProperty(thisKey)) {\n continue;\n }\n\n var transferStrategy = TransferStrategies[thisKey];\n\n if (transferStrategy && TransferStrategies.hasOwnProperty(thisKey)) {\n transferStrategy(props, thisKey, newProps[thisKey]);\n } else if (!props.hasOwnProperty(thisKey)) {\n props[thisKey] = newProps[thisKey];\n }\n }\n return props;\n}\n\n/**\n * ReactPropTransferer are capable of transferring props to another component\n * using a `transferPropsTo` method.\n *\n * @class ReactPropTransferer\n */\nvar ReactPropTransferer = {\n\n /**\n * Merge two props objects using TransferStrategies.\n *\n * @param {object} oldProps original props (they take precedence)\n * @param {object} newProps new props to merge in\n * @return {object} a new object containing both sets of props merged.\n */\n mergeProps: function(oldProps, newProps) {\n return transferInto(assign({}, oldProps), newProps);\n }\n\n};\n\nmodule.exports = ReactPropTransferer;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactPropTransferer.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyOf\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without loosing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\nvar keyOf = function(oneKeyObj) {\n var key;\n for (key in oneKeyObj) {\n if (!oneKeyObj.hasOwnProperty(key)) {\n continue;\n }\n return key;\n }\n return null;\n};\n\n\nmodule.exports = keyOf;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/keyOf.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule warning\n */\n\n\"use strict\";\n\nvar emptyFunction = require(\"./emptyFunction\");\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (\"production\" !== process.env.NODE_ENV) {\n warning = function(condition, format ) {for (var args=[],$__0=2,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || /^[s\\W]*$/.test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function() {return args[argIndex++];});\n console.warn(message);\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/warning.js\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\nprocess.nextTick = (function () {\n var canSetImmediate = typeof window !== 'undefined'\n && window.setImmediate;\n var canMutationObserver = typeof window !== 'undefined'\n && window.MutationObserver;\n var canPost = typeof window !== 'undefined'\n && window.postMessage && window.addEventListener\n ;\n\n if (canSetImmediate) {\n return function (f) { return window.setImmediate(f) };\n }\n\n var queue = [];\n\n if (canMutationObserver) {\n var hiddenDiv = document.createElement(\"div\");\n var observer = new MutationObserver(function () {\n var queueList = queue.slice();\n queue.length = 0;\n queueList.forEach(function (fn) {\n fn();\n });\n });\n\n observer.observe(hiddenDiv, { attributes: true });\n\n return function nextTick(fn) {\n if (!queue.length) {\n hiddenDiv.setAttribute('yes', 'no');\n }\n queue.push(fn);\n };\n }\n\n if (canPost) {\n window.addEventListener('message', function (ev) {\n var source = ev.source;\n if ((source === window || source === null) && ev.data === 'process-tick') {\n ev.stopPropagation();\n if (queue.length > 0) {\n var fn = queue.shift();\n fn();\n }\n }\n }, true);\n\n return function nextTick(fn) {\n queue.push(fn);\n window.postMessage('process-tick', '*');\n };\n }\n\n return function nextTick(fn) {\n setTimeout(fn, 0);\n };\n})();\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\n// TODO(shtylman)\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\n\n\n/** WEBPACK FOOTER **\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactContext\n */\n\n'use strict';\n\nvar assign = require(\"./Object.assign\");\nvar emptyObject = require(\"./emptyObject\");\nvar warning = require(\"./warning\");\n\nvar didWarn = false;\n\n/**\n * Keeps track of the current context.\n *\n * The context is automatically passed down the component ownership hierarchy\n * and is accessible via `this.context` on ReactCompositeComponents.\n */\nvar ReactContext = {\n\n /**\n * @internal\n * @type {object}\n */\n current: emptyObject,\n\n /**\n * Temporarily extends the current context while executing scopedCallback.\n *\n * A typical use case might look like\n *\n * render: function() {\n * var children = ReactContext.withContext({foo: 'foo'}, () => (\n *\n * ));\n * return
{children}
;\n * }\n *\n * @param {object} newContext New context to merge into the existing context\n * @param {function} scopedCallback Callback to run with the new context\n * @return {ReactComponent|array}\n */\n withContext: function(newContext, scopedCallback) {\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n didWarn,\n 'withContext is deprecated and will be removed in a future version. ' +\n 'Use a wrapper component with getChildContext instead.'\n ) : null);\n\n didWarn = true;\n }\n\n var result;\n var previousContext = ReactContext.current;\n ReactContext.current = assign({}, previousContext, newContext);\n try {\n result = scopedCallback();\n } finally {\n ReactContext.current = previousContext;\n }\n return result;\n }\n\n};\n\nmodule.exports = ReactContext;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactContext.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n *\n * The depth indicate how many composite components are above this render level.\n */\nvar ReactCurrentOwner = {\n\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactCurrentOwner.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Object.assign\n */\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\n'use strict';\n\nfunction assign(target, sources) {\n if (target == null) {\n throw new TypeError('Object.assign target cannot be null or undefined');\n }\n\n var to = Object(target);\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n var nextSource = arguments[nextIndex];\n if (nextSource == null) {\n continue;\n }\n\n var from = Object(nextSource);\n\n // We don't currently support accessors nor proxies. Therefore this\n // copy cannot throw. If we ever supported this then we must handle\n // exceptions and side-effects. We don't support symbols so they won't\n // be transferred.\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n }\n\n return to;\n}\n\nmodule.exports = assign;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/Object.assign.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\nfunction makeEmptyFunction(arg) {\n return function() {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function() { return this; };\nemptyFunction.thatReturnsArgument = function(arg) { return arg; };\n\nmodule.exports = emptyFunction;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/emptyFunction.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule joinClasses\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Combines multiple className strings into one.\n * http://jsperf.com/joinclasses-args-vs-array\n *\n * @param {...?string} classes\n * @return {string}\n */\nfunction joinClasses(className/*, ... */) {\n if (!className) {\n className = '';\n }\n var nextClass;\n var argLength = arguments.length;\n if (argLength > 1) {\n for (var ii = 1; ii < argLength; ii++) {\n nextClass = arguments[ii];\n if (nextClass) {\n className = (className ? className + ' ' : '') + nextClass;\n }\n }\n }\n return className;\n}\n\nmodule.exports = joinClasses;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/joinClasses.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyObject\n */\n\n\"use strict\";\n\nvar emptyObject = {};\n\nif (\"production\" !== process.env.NODE_ENV) {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/emptyObject.js\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index d060aa51..5e08e5e7 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}var React=__webpack_require__(2),emptyFunction=function(){};if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className="react-draggable";return this.state.dragging&&(className+=" react-draggable-dragging"),React.addons.cloneWithProps(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}var React=__webpack_require__(2),emptyFunction=function(){},cloneWithProps=__webpack_require__(3);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className="react-draggable";return this.state.dragging&&(className+=" react-draggable-dragging"),cloneWithProps(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){(function(process){"use strict";function cloneWithProps(child,props){"production"!==process.env.NODE_ENV&&("production"!==process.env.NODE_ENV?warning(!child.ref,"You are calling cloneWithProps() on a child with a ref. This is dangerous because you're creating a new child which will not be added as a ref to its parent."):null);var newProps=ReactPropTransferer.mergeProps(props,child.props);return!newProps.hasOwnProperty(CHILDREN_PROP)&&child.props.hasOwnProperty(CHILDREN_PROP)&&(newProps.children=child.props.children),ReactElement.createElement(child.type,newProps)}var ReactElement=__webpack_require__(4),ReactPropTransferer=__webpack_require__(5),keyOf=__webpack_require__(6),warning=__webpack_require__(7),CHILDREN_PROP=keyOf({children:null});module.exports=cloneWithProps}).call(exports,__webpack_require__(8))},function(module,exports,__webpack_require__){(function(process){"use strict";function defineWarningProperty(object,key){Object.defineProperty(object,key,{configurable:!1,enumerable:!0,get:function(){return this._store?this._store[key]:null},set:function(value){"production"!==process.env.NODE_ENV?warning(!1,"Don't set the %s property of the React element. Instead, specify the correct value when initially creating the element.",key):null,this._store[key]=value}})}function defineMutationMembrane(prototype){try{var pseudoFrozenProperties={props:!0};for(var key in pseudoFrozenProperties)defineWarningProperty(prototype,key);useMutationMembrane=!0}catch(x){}}var ReactContext=__webpack_require__(9),ReactCurrentOwner=__webpack_require__(10),assign=__webpack_require__(11),warning=__webpack_require__(7),RESERVED_PROPS={key:!0,ref:!0},useMutationMembrane=!1,ReactElement=function(type,key,ref,owner,context,props){if(this.type=type,this.key=key,this.ref=ref,this._owner=owner,this._context=context,"production"!==process.env.NODE_ENV){this._store={props:props,originalProps:assign({},props)};try{Object.defineProperty(this._store,"validated",{configurable:!1,enumerable:!1,writable:!0})}catch(x){}if(this._store.validated=!1,useMutationMembrane)return void Object.freeze(this)}this.props=props};ReactElement.prototype={_isReactElement:!0},"production"!==process.env.NODE_ENV&&defineMutationMembrane(ReactElement.prototype),ReactElement.createElement=function(type,config,children){var propName,props={},key=null,ref=null;if(null!=config){ref=void 0===config.ref?null:config.ref,key=void 0===config.key?null:""+config.key;for(propName in config)config.hasOwnProperty(propName)&&!RESERVED_PROPS.hasOwnProperty(propName)&&(props[propName]=config[propName])}var childrenLength=arguments.length-2;if(1===childrenLength)props.children=children;else if(childrenLength>1){for(var childArray=Array(childrenLength),i=0;childrenLength>i;i++)childArray[i]=arguments[i+2];props.children=childArray}if(type&&type.defaultProps){var defaultProps=type.defaultProps;for(propName in defaultProps)"undefined"==typeof props[propName]&&(props[propName]=defaultProps[propName])}return new ReactElement(type,key,ref,ReactCurrentOwner.current,ReactContext.current,props)},ReactElement.createFactory=function(type){var factory=ReactElement.createElement.bind(null,type);return factory.type=type,factory},ReactElement.cloneAndReplaceProps=function(oldElement,newProps){var newElement=new ReactElement(oldElement.type,oldElement.key,oldElement.ref,oldElement._owner,oldElement._context,newProps);return"production"!==process.env.NODE_ENV&&(newElement._store.validated=oldElement._store.validated),newElement},ReactElement.cloneElement=function(element,config,children){var propName,props=assign({},element.props),key=element.key,ref=element.ref,owner=element._owner;if(null!=config){void 0!==config.ref&&(ref=config.ref,owner=ReactCurrentOwner.current),void 0!==config.key&&(key=""+config.key);for(propName in config)config.hasOwnProperty(propName)&&!RESERVED_PROPS.hasOwnProperty(propName)&&(props[propName]=config[propName])}var childrenLength=arguments.length-2;if(1===childrenLength)props.children=children;else if(childrenLength>1){for(var childArray=Array(childrenLength),i=0;childrenLength>i;i++)childArray[i]=arguments[i+2];props.children=childArray}return new ReactElement(element.type,key,ref,owner,element._context,props)},ReactElement.isValidElement=function(object){var isElement=!(!object||!object._isReactElement);return isElement},module.exports=ReactElement}).call(exports,__webpack_require__(8))},function(module,exports,__webpack_require__){"use strict";function createTransferStrategy(mergeStrategy){return function(props,key,value){props[key]=props.hasOwnProperty(key)?mergeStrategy(props[key],value):value}}function transferInto(props,newProps){for(var thisKey in newProps)if(newProps.hasOwnProperty(thisKey)){var transferStrategy=TransferStrategies[thisKey];transferStrategy&&TransferStrategies.hasOwnProperty(thisKey)?transferStrategy(props,thisKey,newProps[thisKey]):props.hasOwnProperty(thisKey)||(props[thisKey]=newProps[thisKey])}return props}var assign=__webpack_require__(11),emptyFunction=__webpack_require__(12),joinClasses=__webpack_require__(13),transferStrategyMerge=createTransferStrategy(function(a,b){return assign({},b,a)}),TransferStrategies={children:emptyFunction,className:createTransferStrategy(joinClasses),style:transferStrategyMerge},ReactPropTransferer={mergeProps:function(oldProps,newProps){return transferInto(assign({},oldProps),newProps)}};module.exports=ReactPropTransferer},function(module){var keyOf=function(oneKeyObj){var key;for(key in oneKeyObj)if(oneKeyObj.hasOwnProperty(key))return key;return null};module.exports=keyOf},function(module,exports,__webpack_require__){(function(process){"use strict";var emptyFunction=__webpack_require__(12),warning=emptyFunction;"production"!==process.env.NODE_ENV&&(warning=function(condition,format){for(var args=[],$__0=2,$__1=arguments.length;$__1>$__0;$__0++)args.push(arguments[$__0]);if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(format.length<10||/^[s\W]*$/.test(format))throw new Error("The warning format should be able to uniquely identify this warning. Please, use a more descriptive format than: "+format);if(0!==format.indexOf("Failed Composite propType: ")&&!condition){var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});console.warn(message);try{throw new Error(message)}catch(x){}}}),module.exports=warning}).call(exports,__webpack_require__(8))},function(module){function noop(){}var process=module.exports={};process.nextTick=function(){var canSetImmediate="undefined"!=typeof window&&window.setImmediate,canMutationObserver="undefined"!=typeof window&&window.MutationObserver,canPost="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};var queue=[];if(canMutationObserver){var hiddenDiv=document.createElement("div"),observer=new MutationObserver(function(){var queueList=queue.slice();queue.length=0,queueList.forEach(function(fn){fn()})});return observer.observe(hiddenDiv,{attributes:!0}),function(fn){queue.length||hiddenDiv.setAttribute("yes","no"),queue.push(fn)}}return canPost?(window.addEventListener("message",function(ev){var source=ev.source;if((source===window||null===source)&&"process-tick"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage("process-tick","*")}):function(fn){setTimeout(fn,0)}}(),process.title="browser",process.browser=!0,process.env={},process.argv=[],process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(){throw new Error("process.chdir is not supported")}},function(module,exports,__webpack_require__){(function(process){"use strict";var assign=__webpack_require__(11),emptyObject=__webpack_require__(14),warning=__webpack_require__(7),didWarn=!1,ReactContext={current:emptyObject,withContext:function(newContext,scopedCallback){"production"!==process.env.NODE_ENV&&("production"!==process.env.NODE_ENV?warning(didWarn,"withContext is deprecated and will be removed in a future version. Use a wrapper component with getChildContext instead."):null,didWarn=!0);var result,previousContext=ReactContext.current;ReactContext.current=assign({},previousContext,newContext);try{result=scopedCallback()}finally{ReactContext.current=previousContext}return result}};module.exports=ReactContext}).call(exports,__webpack_require__(8))},function(module){"use strict";var ReactCurrentOwner={current:null};module.exports=ReactCurrentOwner},function(module){"use strict";function assign(target){if(null==target)throw new TypeError("Object.assign target cannot be null or undefined");for(var to=Object(target),hasOwnProperty=Object.prototype.hasOwnProperty,nextIndex=1;nextIndex1)for(var ii=1;argLength>ii;ii++)nextClass=arguments[ii],nextClass&&(className=(className?className+" ":"")+nextClass);return className}module.exports=joinClasses},function(module,exports,__webpack_require__){(function(process){"use strict";var emptyObject={};"production"!==process.env.NODE_ENV&&Object.freeze(emptyObject),module.exports=emptyObject}).call(exports,__webpack_require__(8))}])}); //# sourceMappingURL=react-draggable.min.map \ No newline at end of file diff --git a/dist/react-draggable.min.map b/dist/react-draggable.min.map index 8782d7b4..3755baab 100644 --- a/dist/react-draggable.min.map +++ b/dist/react-draggable.min.map @@ -1 +1 @@ -{"version":3,"file":"dist/react-draggable.min.js","sources":["dist/react-draggable.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createUIEvent","draggable","position","top","state","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","element","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","React","emptyFunction","window","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","handle","string","cancel","grid","arrayOf","number","object","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","x","y","NaN","getInitialState","dragging","startX","startY","offsetX","offsetY","handleDragStart","node","getDOMNode","target","dragPoint","setState","parseInt","style","Array","isArray","directionX","directionY","Math","abs","render","isNaN","className","addons","cloneWithProps","Children","only","children","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dist/react-draggable.min.js","sources":["dist/react-draggable.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createUIEvent","draggable","position","top","state","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","element","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","React","emptyFunction","cloneWithProps","window","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","handle","string","cancel","grid","arrayOf","number","object","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","x","y","NaN","getInitialState","dragging","startX","startY","offsetX","offsetY","handleDragStart","node","getDOMNode","target","dragPoint","setState","parseInt","style","Array","isArray","directionX","directionY","Math","abs","render","isNaN","className","Children","only","children","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","process","child","env","NODE_ENV","warning","ref","newProps","ReactPropTransferer","mergeProps","hasOwnProperty","CHILDREN_PROP","ReactElement","createElement","type","keyOf","defineWarningProperty","key","defineProperty","configurable","enumerable","get","_store","set","value","defineMutationMembrane","pseudoFrozenProperties","useMutationMembrane","ReactContext","ReactCurrentOwner","assign","RESERVED_PROPS","owner","context","_owner","_context","originalProps","writable","validated","freeze","_isReactElement","config","propName","undefined","childrenLength","childArray","defaultProps","current","createFactory","cloneAndReplaceProps","oldElement","newElement","cloneElement","isValidElement","isElement","createTransferStrategy","mergeStrategy","transferInto","thisKey","transferStrategy","TransferStrategies","joinClasses","transferStrategyMerge","a","b","oldProps","oneKeyObj","condition","format","args","$__0","$__1","push","Error","test","indexOf","argIndex","message","replace","console","warn","noop","nextTick","canSetImmediate","setImmediate","canMutationObserver","MutationObserver","canPost","postMessage","f","queue","hiddenDiv","document","observer","queueList","slice","forEach","fn","observe","attributes","setAttribute","source","data","stopPropagation","shift","setTimeout","title","browser","argv","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","emptyObject","didWarn","withContext","newContext","scopedCallback","result","previousContext","TypeError","to","nextIndex","nextSource","from","makeEmptyFunction","arg","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","nextClass","argLength","ii"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index dcf06870..7c5b4ee7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.4.2", + "version": "0.4.3", "description": "React draggable component", "main": "index.js", "scripts": { From efe3ab111ec261950ca664257d6b24c5f12cf7c2 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 17:38:16 -0500 Subject: [PATCH 017/412] Remove browser config, reactify, pragma. lib/draggable.js is not JSX. Fixes #38 --- lib/draggable.js | 1 - package.json | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 0a133d7e..8708762e 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -1,6 +1,5 @@ 'use strict'; -/** @jsx React.DOM */ var React = require('react'); var emptyFunction = function(){}; var cloneWithProps = require('react/lib/cloneWithProps'); diff --git a/package.json b/package.json index 7c5b4ee7..188cf21c 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "test": "script/test --browsers Firefox --single-run", "start": "script/build" }, - "browser": "dist/react-draggable.js", "repository": { "type": "git", "url": "https://github.com/mzabriskie/react-draggable.git" @@ -32,7 +31,6 @@ "karma-jasmine": "^0.1.5", "karma-webpack": "^1.2.1", "react": "^0.12.0", - "reactify": "^0.17.1", "uglify-js": "^2.4.15", "webpack": "^1.3.2-beta8", "webpack-dev-server": "^1.4.7" From f36b2b996b2f71d445045ddc330fd7acf14ee942 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 17:38:28 -0500 Subject: [PATCH 018/412] Move to React.cloneElement from React.addons.cloneWithProps. This requires we import object-assign to merge styles. --- lib/draggable.js | 12 ++++++------ package.json | 3 +++ specs/draggable.spec.js | 10 ++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 8708762e..1f76b930 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -2,7 +2,7 @@ var React = require('react'); var emptyFunction = function(){}; -var cloneWithProps = require('react/lib/cloneWithProps'); +var assign = require('object-assign'); function createUIEvent(draggable) { return { @@ -24,7 +24,7 @@ function canDragX(draggable) { } function isFunction(func) { - return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]' + return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; } // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc @@ -92,7 +92,7 @@ function getControlPosition(e) { return { clientX: position.clientX, clientY: position.clientY - } + }; } function addEvent(el, event, handler) { @@ -446,15 +446,15 @@ module.exports = React.createClass({ style.zIndex = this.props.zIndex; } - var className = 'react-draggable'; + var className = (this.props.children.props.className || '') + ' react-draggable'; if (this.state.dragging) { className += ' react-draggable-dragging'; } // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) - return cloneWithProps(React.Children.only(this.props.children), { - style: style, + return React.cloneElement(React.Children.only(this.props.children), { + style: assign({}, this.props.children.props.style || {}, style), className: className, onMouseDown: this.handleDragStart, diff --git a/package.json b/package.json index 188cf21c..d354094c 100644 --- a/package.json +++ b/package.json @@ -34,5 +34,8 @@ "uglify-js": "^2.4.15", "webpack": "^1.3.2-beta8", "webpack-dev-server": "^1.4.7" + }, + "dependencies": { + "object-assign": "^2.0.0" } } diff --git a/specs/draggable.spec.js b/specs/draggable.spec.js index 43f17855..95b3000a 100644 --- a/specs/draggable.spec.js +++ b/specs/draggable.spec.js @@ -16,6 +16,16 @@ describe('react-draggable', function () { expect(typeof drag.props.onStop).toEqual('function'); }); + it('should pass style and className properly from child', function () { + var el =
; + var renderer = TestUtils.createRenderer(); + renderer.render(el); + var output = renderer.getRenderOutput(); + + expect(output.props.className).toEqual('foo react-draggable'); + expect(output.props.style).toEqual({top: 0, left: 0, color: 'black'}); + }); + it('should honor props', function () { function handleStart() {} function handleDrag() {} From 99830d7e051aa530d1cfbc2c390cc4d21ea01ee5 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 30 Apr 2015 17:42:07 -0500 Subject: [PATCH 019/412] Fixup examples for new React version --- dist/react-draggable.js | 982 +---------------------------------- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- example/index.html | 9 +- 5 files changed, 30 insertions(+), 967 deletions(-) diff --git a/dist/react-draggable.js b/dist/react-draggable.js index e980bbac..53f79e6a 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -63,10 +63,9 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - /** @jsx React.DOM */ var React = __webpack_require__(2); var emptyFunction = function(){}; - var cloneWithProps = __webpack_require__(3); + var assign = __webpack_require__(3); function createUIEvent(draggable) { return { @@ -88,7 +87,7 @@ return /******/ (function(modules) { // webpackBootstrap } function isFunction(func) { - return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]' + return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; } // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc @@ -156,7 +155,7 @@ return /******/ (function(modules) { // webpackBootstrap return { clientX: position.clientX, clientY: position.clientY - } + }; } function addEvent(el, event, handler) { @@ -510,15 +509,15 @@ return /******/ (function(modules) { // webpackBootstrap style.zIndex = this.props.zIndex; } - var className = 'react-draggable'; + var className = (this.props.children.props.className || '') + ' react-draggable'; if (this.state.dragging) { className += ' react-draggable-dragging'; } // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) - return cloneWithProps(React.Children.only(this.props.children), { - style: style, + return React.cloneElement(React.Children.only(this.props.children), { + style: assign({}, this.props.children.props.style || {}, style), className: className, onMouseDown: this.handleDragStart, @@ -544,968 +543,33 @@ return /******/ (function(modules) { // webpackBootstrap /* 3 */ /***/ function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks static-only - * @providesModule cloneWithProps - */ - - 'use strict'; - - var ReactElement = __webpack_require__(4); - var ReactPropTransferer = __webpack_require__(5); - - var keyOf = __webpack_require__(6); - var warning = __webpack_require__(7); - - var CHILDREN_PROP = keyOf({children: null}); - - /** - * Sometimes you want to change the props of a child passed to you. Usually - * this is to add a CSS class. - * - * @param {ReactElement} child child element you'd like to clone - * @param {object} props props you'd like to modify. className and style will be - * merged automatically. - * @return {ReactElement} a clone of child with props merged in. - */ - function cloneWithProps(child, props) { - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - !child.ref, - 'You are calling cloneWithProps() on a child with a ref. This is ' + - 'dangerous because you\'re creating a new child which will not be ' + - 'added as a ref to its parent.' - ) : null); - } - - var newProps = ReactPropTransferer.mergeProps(props, child.props); - - // Use `child.props.children` if it is provided. - if (!newProps.hasOwnProperty(CHILDREN_PROP) && - child.props.hasOwnProperty(CHILDREN_PROP)) { - newProps.children = child.props.children; - } - - // The current API doesn't retain _owner and _context, which is why this - // doesn't use ReactElement.cloneAndReplaceProps. - return ReactElement.createElement(child.type, newProps); - } - - module.exports = cloneWithProps; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactElement - */ - - 'use strict'; - - var ReactContext = __webpack_require__(9); - var ReactCurrentOwner = __webpack_require__(10); - - var assign = __webpack_require__(11); - var warning = __webpack_require__(7); - - var RESERVED_PROPS = { - key: true, - ref: true - }; - - /** - * Warn for mutations. - * - * @internal - * @param {object} object - * @param {string} key - */ - function defineWarningProperty(object, key) { - Object.defineProperty(object, key, { - - configurable: false, - enumerable: true, - - get: function() { - if (!this._store) { - return null; - } - return this._store[key]; - }, - - set: function(value) { - ("production" !== process.env.NODE_ENV ? warning( - false, - 'Don\'t set the %s property of the React element. Instead, ' + - 'specify the correct value when initially creating the element.', - key - ) : null); - this._store[key] = value; - } - - }); - } - - /** - * This is updated to true if the membrane is successfully created. - */ - var useMutationMembrane = false; - - /** - * Warn for mutations. - * - * @internal - * @param {object} element - */ - function defineMutationMembrane(prototype) { - try { - var pseudoFrozenProperties = { - props: true - }; - for (var key in pseudoFrozenProperties) { - defineWarningProperty(prototype, key); - } - useMutationMembrane = true; - } catch (x) { - // IE will fail on defineProperty - } - } - - /** - * Base constructor for all React elements. This is only used to make this - * work with a dynamic instanceof check. Nothing should live on this prototype. - * - * @param {*} type - * @param {string|object} ref - * @param {*} key - * @param {*} props - * @internal - */ - var ReactElement = function(type, key, ref, owner, context, props) { - // Built-in properties that belong on the element - this.type = type; - this.key = key; - this.ref = ref; - - // Record the component responsible for creating this element. - this._owner = owner; - - // TODO: Deprecate withContext, and then the context becomes accessible - // through the owner. - this._context = context; - - if ("production" !== process.env.NODE_ENV) { - // The validation flag and props are currently mutative. We put them on - // an external backing store so that we can freeze the whole object. - // This can be replaced with a WeakMap once they are implemented in - // commonly used development environments. - this._store = {props: props, originalProps: assign({}, props)}; - - // To make comparing ReactElements easier for testing purposes, we make - // the validation flag non-enumerable (where possible, which should - // include every environment we run tests in), so the test framework - // ignores it. - try { - Object.defineProperty(this._store, 'validated', { - configurable: false, - enumerable: false, - writable: true - }); - } catch (x) { - } - this._store.validated = false; - - // We're not allowed to set props directly on the object so we early - // return and rely on the prototype membrane to forward to the backing - // store. - if (useMutationMembrane) { - Object.freeze(this); - return; - } - } - - this.props = props; - }; - - // We intentionally don't expose the function on the constructor property. - // ReactElement should be indistinguishable from a plain object. - ReactElement.prototype = { - _isReactElement: true - }; - - if ("production" !== process.env.NODE_ENV) { - defineMutationMembrane(ReactElement.prototype); - } - - ReactElement.createElement = function(type, config, children) { - var propName; - - // Reserved names are extracted - var props = {}; - - var key = null; - var ref = null; - - if (config != null) { - ref = config.ref === undefined ? null : config.ref; - key = config.key === undefined ? null : '' + config.key; - // Remaining properties are added to a new props object - for (propName in config) { - if (config.hasOwnProperty(propName) && - !RESERVED_PROPS.hasOwnProperty(propName)) { - props[propName] = config[propName]; - } - } - } - - // Children can be more than one argument, and those are transferred onto - // the newly allocated props object. - var childrenLength = arguments.length - 2; - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - props.children = childArray; - } - - // Resolve default props - if (type && type.defaultProps) { - var defaultProps = type.defaultProps; - for (propName in defaultProps) { - if (typeof props[propName] === 'undefined') { - props[propName] = defaultProps[propName]; - } - } - } - - return new ReactElement( - type, - key, - ref, - ReactCurrentOwner.current, - ReactContext.current, - props - ); - }; - - ReactElement.createFactory = function(type) { - var factory = ReactElement.createElement.bind(null, type); - // Expose the type on the factory and the prototype so that it can be - // easily accessed on elements. E.g. .type === Foo.type. - // This should not be named `constructor` since this may not be the function - // that created the element, and it may not even be a constructor. - // Legacy hook TODO: Warn if this is accessed - factory.type = type; - return factory; - }; - - ReactElement.cloneAndReplaceProps = function(oldElement, newProps) { - var newElement = new ReactElement( - oldElement.type, - oldElement.key, - oldElement.ref, - oldElement._owner, - oldElement._context, - newProps - ); - - if ("production" !== process.env.NODE_ENV) { - // If the key on the original is valid, then the clone is valid - newElement._store.validated = oldElement._store.validated; - } - return newElement; - }; - - ReactElement.cloneElement = function(element, config, children) { - var propName; - - // Original props are copied - var props = assign({}, element.props); - - // Reserved names are extracted - var key = element.key; - var ref = element.ref; - - // Owner will be preserved, unless ref is overridden - var owner = element._owner; - - if (config != null) { - if (config.ref !== undefined) { - // Silently steal the ref from the parent. - ref = config.ref; - owner = ReactCurrentOwner.current; - } - if (config.key !== undefined) { - key = '' + config.key; - } - // Remaining properties override existing props - for (propName in config) { - if (config.hasOwnProperty(propName) && - !RESERVED_PROPS.hasOwnProperty(propName)) { - props[propName] = config[propName]; - } - } - } - - // Children can be more than one argument, and those are transferred onto - // the newly allocated props object. - var childrenLength = arguments.length - 2; - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - props.children = childArray; - } - - return new ReactElement( - element.type, - key, - ref, - owner, - element._context, - props - ); - }; - - /** - * @param {?object} object - * @return {boolean} True if `object` is a valid component. - * @final - */ - ReactElement.isValidElement = function(object) { - // ReactTestUtils is often used outside of beforeEach where as React is - // within it. This leads to two different instances of React on the same - // page. To identify a element from a different React instance we use - // a flag instead of an instanceof check. - var isElement = !!(object && object._isReactElement); - // if (isElement && !(object instanceof ReactElement)) { - // This is an indicator that you're using multiple versions of React at the - // same time. This will screw with ownership and stuff. Fix it, please. - // TODO: We could possibly warn here. - // } - return isElement; - }; - - module.exports = ReactElement; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactPropTransferer - */ - 'use strict'; - var assign = __webpack_require__(11); - var emptyFunction = __webpack_require__(12); - var joinClasses = __webpack_require__(13); - - /** - * Creates a transfer strategy that will merge prop values using the supplied - * `mergeStrategy`. If a prop was previously unset, this just sets it. - * - * @param {function} mergeStrategy - * @return {function} - */ - function createTransferStrategy(mergeStrategy) { - return function(props, key, value) { - if (!props.hasOwnProperty(key)) { - props[key] = value; - } else { - props[key] = mergeStrategy(props[key], value); - } - }; - } - - var transferStrategyMerge = createTransferStrategy(function(a, b) { - // `merge` overrides the first object's (`props[key]` above) keys using the - // second object's (`value`) keys. An object's style's existing `propA` would - // get overridden. Flip the order here. - return assign({}, b, a); - }); - - /** - * Transfer strategies dictate how props are transferred by `transferPropsTo`. - * NOTE: if you add any more exceptions to this list you should be sure to - * update `cloneWithProps()` accordingly. - */ - var TransferStrategies = { - /** - * Never transfer `children`. - */ - children: emptyFunction, - /** - * Transfer the `className` prop by merging them. - */ - className: createTransferStrategy(joinClasses), - /** - * Transfer the `style` prop (which is an object) by merging them. - */ - style: transferStrategyMerge - }; - - /** - * Mutates the first argument by transferring the properties from the second - * argument. - * - * @param {object} props - * @param {object} newProps - * @return {object} - */ - function transferInto(props, newProps) { - for (var thisKey in newProps) { - if (!newProps.hasOwnProperty(thisKey)) { - continue; - } - - var transferStrategy = TransferStrategies[thisKey]; - - if (transferStrategy && TransferStrategies.hasOwnProperty(thisKey)) { - transferStrategy(props, thisKey, newProps[thisKey]); - } else if (!props.hasOwnProperty(thisKey)) { - props[thisKey] = newProps[thisKey]; - } - } - return props; - } - - /** - * ReactPropTransferer are capable of transferring props to another component - * using a `transferPropsTo` method. - * - * @class ReactPropTransferer - */ - var ReactPropTransferer = { - - /** - * Merge two props objects using TransferStrategies. - * - * @param {object} oldProps original props (they take precedence) - * @param {object} newProps new props to merge in - * @return {object} a new object containing both sets of props merged. - */ - mergeProps: function(oldProps, newProps) { - return transferInto(assign({}, oldProps), newProps); - } - - }; - - module.exports = ReactPropTransferer; - - -/***/ }, -/* 6 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule keyOf - */ - - /** - * Allows extraction of a minified key. Let's the build system minify keys - * without loosing the ability to dynamically use key strings as values - * themselves. Pass in an object with a single key/val pair and it will return - * you the string key of that single record. Suppose you want to grab the - * value for a key 'className' inside of an object. Key/val minification may - * have aliased that key to be 'xa12'. keyOf({className: null}) will return - * 'xa12' in that case. Resolve keys you want to use once at startup time, then - * reuse those resolutions. - */ - var keyOf = function(oneKeyObj) { - var key; - for (key in oneKeyObj) { - if (!oneKeyObj.hasOwnProperty(key)) { - continue; - } - return key; - } - return null; - }; - - - module.exports = keyOf; - - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule warning - */ - - "use strict"; - - var emptyFunction = __webpack_require__(12); - - /** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var warning = emptyFunction; - - if ("production" !== process.env.NODE_ENV) { - warning = function(condition, format ) {for (var args=[],$__0=2,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]); - if (format === undefined) { - throw new Error( - '`warning(condition, format, ...args)` requires a warning ' + - 'message argument' - ); - } - - if (format.length < 10 || /^[s\W]*$/.test(format)) { - throw new Error( - 'The warning format should be able to uniquely identify this ' + - 'warning. Please, use a more descriptive format than: ' + format - ); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } + function ToObject(val) { + if (val == null) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } - if (!condition) { - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function() {return args[argIndex++];}); - console.warn(message); - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch(x) {} - } - }; + return Object(val); } - module.exports = warning; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - // shim for using process in browser - - var process = module.exports = {}; - - process.nextTick = (function () { - var canSetImmediate = typeof window !== 'undefined' - && window.setImmediate; - var canMutationObserver = typeof window !== 'undefined' - && window.MutationObserver; - var canPost = typeof window !== 'undefined' - && window.postMessage && window.addEventListener - ; - - if (canSetImmediate) { - return function (f) { return window.setImmediate(f) }; - } - - var queue = []; - - if (canMutationObserver) { - var hiddenDiv = document.createElement("div"); - var observer = new MutationObserver(function () { - var queueList = queue.slice(); - queue.length = 0; - queueList.forEach(function (fn) { - fn(); - }); - }); - - observer.observe(hiddenDiv, { attributes: true }); - - return function nextTick(fn) { - if (!queue.length) { - hiddenDiv.setAttribute('yes', 'no'); - } - queue.push(fn); - }; - } - - if (canPost) { - window.addEventListener('message', function (ev) { - var source = ev.source; - if ((source === window || source === null) && ev.data === 'process-tick') { - ev.stopPropagation(); - if (queue.length > 0) { - var fn = queue.shift(); - fn(); - } - } - }, true); - - return function nextTick(fn) { - queue.push(fn); - window.postMessage('process-tick', '*'); - }; - } - - return function nextTick(fn) { - setTimeout(fn, 0); - }; - })(); - - process.title = 'browser'; - process.browser = true; - process.env = {}; - process.argv = []; - - function noop() {} - - process.on = noop; - process.addListener = noop; - process.once = noop; - process.off = noop; - process.removeListener = noop; - process.removeAllListeners = noop; - process.emit = noop; - - process.binding = function (name) { - throw new Error('process.binding is not supported'); - }; - - // TODO(shtylman) - process.cwd = function () { return '/' }; - process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); - }; - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactContext - */ - - 'use strict'; - - var assign = __webpack_require__(11); - var emptyObject = __webpack_require__(14); - var warning = __webpack_require__(7); - - var didWarn = false; - - /** - * Keeps track of the current context. - * - * The context is automatically passed down the component ownership hierarchy - * and is accessible via `this.context` on ReactCompositeComponents. - */ - var ReactContext = { - - /** - * @internal - * @type {object} - */ - current: emptyObject, - - /** - * Temporarily extends the current context while executing scopedCallback. - * - * A typical use case might look like - * - * render: function() { - * var children = ReactContext.withContext({foo: 'foo'}, () => ( - * - * )); - * return
{children}
; - * } - * - * @param {object} newContext New context to merge into the existing context - * @param {function} scopedCallback Callback to run with the new context - * @return {ReactComponent|array} - */ - withContext: function(newContext, scopedCallback) { - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - didWarn, - 'withContext is deprecated and will be removed in a future version. ' + - 'Use a wrapper component with getChildContext instead.' - ) : null); - - didWarn = true; - } - - var result; - var previousContext = ReactContext.current; - ReactContext.current = assign({}, previousContext, newContext); - try { - result = scopedCallback(); - } finally { - ReactContext.current = previousContext; - } - return result; - } - - }; + module.exports = Object.assign || function (target, source) { + var from; + var keys; + var to = ToObject(target); - module.exports = ReactContext; + for (var s = 1; s < arguments.length; s++) { + from = arguments[s]; + keys = Object.keys(Object(from)); - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) - -/***/ }, -/* 10 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactCurrentOwner - */ - - 'use strict'; - - /** - * Keeps track of the current owner. - * - * The current owner is the component who should own any components that are - * currently being constructed. - * - * The depth indicate how many composite components are above this render level. - */ - var ReactCurrentOwner = { - - /** - * @internal - * @type {ReactComponent} - */ - current: null + for (var i = 0; i < keys.length; i++) { + to[keys[i]] = from[keys[i]]; + } + } + return to; }; - - module.exports = ReactCurrentOwner; - - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule Object.assign - */ - - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign - - 'use strict'; - - function assign(target, sources) { - if (target == null) { - throw new TypeError('Object.assign target cannot be null or undefined'); - } - - var to = Object(target); - var hasOwnProperty = Object.prototype.hasOwnProperty; - - for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) { - var nextSource = arguments[nextIndex]; - if (nextSource == null) { - continue; - } - - var from = Object(nextSource); - - // We don't currently support accessors nor proxies. Therefore this - // copy cannot throw. If we ever supported this then we must handle - // exceptions and side-effects. We don't support symbols so they won't - // be transferred. - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - } - - return to; - } - - module.exports = assign; - -/***/ }, -/* 12 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule emptyFunction - */ - - function makeEmptyFunction(arg) { - return function() { - return arg; - }; - } - - /** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ - function emptyFunction() {} - - emptyFunction.thatReturns = makeEmptyFunction; - emptyFunction.thatReturnsFalse = makeEmptyFunction(false); - emptyFunction.thatReturnsTrue = makeEmptyFunction(true); - emptyFunction.thatReturnsNull = makeEmptyFunction(null); - emptyFunction.thatReturnsThis = function() { return this; }; - emptyFunction.thatReturnsArgument = function(arg) { return arg; }; - - module.exports = emptyFunction; - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule joinClasses - * @typechecks static-only - */ - - 'use strict'; - - /** - * Combines multiple className strings into one. - * http://jsperf.com/joinclasses-args-vs-array - * - * @param {...?string} classes - * @return {string} - */ - function joinClasses(className/*, ... */) { - if (!className) { - className = ''; - } - var nextClass; - var argLength = arguments.length; - if (argLength > 1) { - for (var ii = 1; ii < argLength; ii++) { - nextClass = arguments[ii]; - if (nextClass) { - className = (className ? className + ' ' : '') + nextClass; - } - } - } - return className; - } - - module.exports = joinClasses; - - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule emptyObject - */ - - "use strict"; - - var emptyObject = {}; - - if ("production" !== process.env.NODE_ENV) { - Object.freeze(emptyObject); - } - - module.exports = emptyObject; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ } /******/ ]) diff --git a/dist/react-draggable.map b/dist/react-draggable.map index e5f6afb4..b53b8ba4 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap fb8b33fa04334fccba28","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\"","webpack:///./~/react/lib/cloneWithProps.js","webpack:///./~/react/lib/ReactElement.js","webpack:///./~/react/lib/ReactPropTransferer.js","webpack:///./~/react/lib/keyOf.js","webpack:///./~/react/lib/warning.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./~/react/lib/ReactContext.js","webpack:///./~/react/lib/ReactCurrentOwner.js","webpack:///./~/react/lib/Object.assign.js","webpack:///./~/react/lib/emptyFunction.js","webpack:///./~/react/lib/joinClasses.js","webpack:///./~/react/lib/emptyObject.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;;GAEE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACnC,GAAE;;AAEF,EAAC,oBAAoB,EAAE,WAAW;;GAEhC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,GAAE;;EAED,eAAe,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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap fb8b33fa04334fccba28\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\n/** @jsx React.DOM */\nvar React = require('react');\nvar emptyFunction = function(){};\nvar cloneWithProps = require('react/lib/cloneWithProps');\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n }\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\n\t\tvar className = 'react-draggable';\n\t\tif (this.state.dragging) {\n\t\t\tclassName += ' react-draggable-dragging';\n\t\t}\n\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn cloneWithProps(React.Children.only(this.props.children), {\n\t\t\tstyle: style,\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n * @providesModule cloneWithProps\n */\n\n'use strict';\n\nvar ReactElement = require(\"./ReactElement\");\nvar ReactPropTransferer = require(\"./ReactPropTransferer\");\n\nvar keyOf = require(\"./keyOf\");\nvar warning = require(\"./warning\");\n\nvar CHILDREN_PROP = keyOf({children: null});\n\n/**\n * Sometimes you want to change the props of a child passed to you. Usually\n * this is to add a CSS class.\n *\n * @param {ReactElement} child child element you'd like to clone\n * @param {object} props props you'd like to modify. className and style will be\n * merged automatically.\n * @return {ReactElement} a clone of child with props merged in.\n */\nfunction cloneWithProps(child, props) {\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n !child.ref,\n 'You are calling cloneWithProps() on a child with a ref. This is ' +\n 'dangerous because you\\'re creating a new child which will not be ' +\n 'added as a ref to its parent.'\n ) : null);\n }\n\n var newProps = ReactPropTransferer.mergeProps(props, child.props);\n\n // Use `child.props.children` if it is provided.\n if (!newProps.hasOwnProperty(CHILDREN_PROP) &&\n child.props.hasOwnProperty(CHILDREN_PROP)) {\n newProps.children = child.props.children;\n }\n\n // The current API doesn't retain _owner and _context, which is why this\n // doesn't use ReactElement.cloneAndReplaceProps.\n return ReactElement.createElement(child.type, newProps);\n}\n\nmodule.exports = cloneWithProps;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/cloneWithProps.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar ReactContext = require(\"./ReactContext\");\nvar ReactCurrentOwner = require(\"./ReactCurrentOwner\");\n\nvar assign = require(\"./Object.assign\");\nvar warning = require(\"./warning\");\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true\n};\n\n/**\n * Warn for mutations.\n *\n * @internal\n * @param {object} object\n * @param {string} key\n */\nfunction defineWarningProperty(object, key) {\n Object.defineProperty(object, key, {\n\n configurable: false,\n enumerable: true,\n\n get: function() {\n if (!this._store) {\n return null;\n }\n return this._store[key];\n },\n\n set: function(value) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'Don\\'t set the %s property of the React element. Instead, ' +\n 'specify the correct value when initially creating the element.',\n key\n ) : null);\n this._store[key] = value;\n }\n\n });\n}\n\n/**\n * This is updated to true if the membrane is successfully created.\n */\nvar useMutationMembrane = false;\n\n/**\n * Warn for mutations.\n *\n * @internal\n * @param {object} element\n */\nfunction defineMutationMembrane(prototype) {\n try {\n var pseudoFrozenProperties = {\n props: true\n };\n for (var key in pseudoFrozenProperties) {\n defineWarningProperty(prototype, key);\n }\n useMutationMembrane = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\n/**\n * Base constructor for all React elements. This is only used to make this\n * work with a dynamic instanceof check. Nothing should live on this prototype.\n *\n * @param {*} type\n * @param {string|object} ref\n * @param {*} key\n * @param {*} props\n * @internal\n */\nvar ReactElement = function(type, key, ref, owner, context, props) {\n // Built-in properties that belong on the element\n this.type = type;\n this.key = key;\n this.ref = ref;\n\n // Record the component responsible for creating this element.\n this._owner = owner;\n\n // TODO: Deprecate withContext, and then the context becomes accessible\n // through the owner.\n this._context = context;\n\n if (\"production\" !== process.env.NODE_ENV) {\n // The validation flag and props are currently mutative. We put them on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n this._store = {props: props, originalProps: assign({}, props)};\n\n // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n try {\n Object.defineProperty(this._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true\n });\n } catch (x) {\n }\n this._store.validated = false;\n\n // We're not allowed to set props directly on the object so we early\n // return and rely on the prototype membrane to forward to the backing\n // store.\n if (useMutationMembrane) {\n Object.freeze(this);\n return;\n }\n }\n\n this.props = props;\n};\n\n// We intentionally don't expose the function on the constructor property.\n// ReactElement should be indistinguishable from a plain object.\nReactElement.prototype = {\n _isReactElement: true\n};\n\nif (\"production\" !== process.env.NODE_ENV) {\n defineMutationMembrane(ReactElement.prototype);\n}\n\nReactElement.createElement = function(type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n\n if (config != null) {\n ref = config.ref === undefined ? null : config.ref;\n key = config.key === undefined ? null : '' + config.key;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (config.hasOwnProperty(propName) &&\n !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (typeof props[propName] === 'undefined') {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n return new ReactElement(\n type,\n key,\n ref,\n ReactCurrentOwner.current,\n ReactContext.current,\n props\n );\n};\n\nReactElement.createFactory = function(type) {\n var factory = ReactElement.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. .type === Foo.type.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n // Legacy hook TODO: Warn if this is accessed\n factory.type = type;\n return factory;\n};\n\nReactElement.cloneAndReplaceProps = function(oldElement, newProps) {\n var newElement = new ReactElement(\n oldElement.type,\n oldElement.key,\n oldElement.ref,\n oldElement._owner,\n oldElement._context,\n newProps\n );\n\n if (\"production\" !== process.env.NODE_ENV) {\n // If the key on the original is valid, then the clone is valid\n newElement._store.validated = oldElement._store.validated;\n }\n return newElement;\n};\n\nReactElement.cloneElement = function(element, config, children) {\n var propName;\n\n // Original props are copied\n var props = assign({}, element.props);\n\n // Reserved names are extracted\n var key = element.key;\n var ref = element.ref;\n\n // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n\n if (config != null) {\n if (config.ref !== undefined) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (config.key !== undefined) {\n key = '' + config.key;\n }\n // Remaining properties override existing props\n for (propName in config) {\n if (config.hasOwnProperty(propName) &&\n !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n return new ReactElement(\n element.type,\n key,\n ref,\n owner,\n element._context,\n props\n );\n};\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function(object) {\n // ReactTestUtils is often used outside of beforeEach where as React is\n // within it. This leads to two different instances of React on the same\n // page. To identify a element from a different React instance we use\n // a flag instead of an instanceof check.\n var isElement = !!(object && object._isReactElement);\n // if (isElement && !(object instanceof ReactElement)) {\n // This is an indicator that you're using multiple versions of React at the\n // same time. This will screw with ownership and stuff. Fix it, please.\n // TODO: We could possibly warn here.\n // }\n return isElement;\n};\n\nmodule.exports = ReactElement;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactElement.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTransferer\n */\n\n'use strict';\n\nvar assign = require(\"./Object.assign\");\nvar emptyFunction = require(\"./emptyFunction\");\nvar joinClasses = require(\"./joinClasses\");\n\n/**\n * Creates a transfer strategy that will merge prop values using the supplied\n * `mergeStrategy`. If a prop was previously unset, this just sets it.\n *\n * @param {function} mergeStrategy\n * @return {function}\n */\nfunction createTransferStrategy(mergeStrategy) {\n return function(props, key, value) {\n if (!props.hasOwnProperty(key)) {\n props[key] = value;\n } else {\n props[key] = mergeStrategy(props[key], value);\n }\n };\n}\n\nvar transferStrategyMerge = createTransferStrategy(function(a, b) {\n // `merge` overrides the first object's (`props[key]` above) keys using the\n // second object's (`value`) keys. An object's style's existing `propA` would\n // get overridden. Flip the order here.\n return assign({}, b, a);\n});\n\n/**\n * Transfer strategies dictate how props are transferred by `transferPropsTo`.\n * NOTE: if you add any more exceptions to this list you should be sure to\n * update `cloneWithProps()` accordingly.\n */\nvar TransferStrategies = {\n /**\n * Never transfer `children`.\n */\n children: emptyFunction,\n /**\n * Transfer the `className` prop by merging them.\n */\n className: createTransferStrategy(joinClasses),\n /**\n * Transfer the `style` prop (which is an object) by merging them.\n */\n style: transferStrategyMerge\n};\n\n/**\n * Mutates the first argument by transferring the properties from the second\n * argument.\n *\n * @param {object} props\n * @param {object} newProps\n * @return {object}\n */\nfunction transferInto(props, newProps) {\n for (var thisKey in newProps) {\n if (!newProps.hasOwnProperty(thisKey)) {\n continue;\n }\n\n var transferStrategy = TransferStrategies[thisKey];\n\n if (transferStrategy && TransferStrategies.hasOwnProperty(thisKey)) {\n transferStrategy(props, thisKey, newProps[thisKey]);\n } else if (!props.hasOwnProperty(thisKey)) {\n props[thisKey] = newProps[thisKey];\n }\n }\n return props;\n}\n\n/**\n * ReactPropTransferer are capable of transferring props to another component\n * using a `transferPropsTo` method.\n *\n * @class ReactPropTransferer\n */\nvar ReactPropTransferer = {\n\n /**\n * Merge two props objects using TransferStrategies.\n *\n * @param {object} oldProps original props (they take precedence)\n * @param {object} newProps new props to merge in\n * @return {object} a new object containing both sets of props merged.\n */\n mergeProps: function(oldProps, newProps) {\n return transferInto(assign({}, oldProps), newProps);\n }\n\n};\n\nmodule.exports = ReactPropTransferer;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactPropTransferer.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyOf\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without loosing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\nvar keyOf = function(oneKeyObj) {\n var key;\n for (key in oneKeyObj) {\n if (!oneKeyObj.hasOwnProperty(key)) {\n continue;\n }\n return key;\n }\n return null;\n};\n\n\nmodule.exports = keyOf;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/keyOf.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule warning\n */\n\n\"use strict\";\n\nvar emptyFunction = require(\"./emptyFunction\");\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (\"production\" !== process.env.NODE_ENV) {\n warning = function(condition, format ) {for (var args=[],$__0=2,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || /^[s\\W]*$/.test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function() {return args[argIndex++];});\n console.warn(message);\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/warning.js\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\nprocess.nextTick = (function () {\n var canSetImmediate = typeof window !== 'undefined'\n && window.setImmediate;\n var canMutationObserver = typeof window !== 'undefined'\n && window.MutationObserver;\n var canPost = typeof window !== 'undefined'\n && window.postMessage && window.addEventListener\n ;\n\n if (canSetImmediate) {\n return function (f) { return window.setImmediate(f) };\n }\n\n var queue = [];\n\n if (canMutationObserver) {\n var hiddenDiv = document.createElement(\"div\");\n var observer = new MutationObserver(function () {\n var queueList = queue.slice();\n queue.length = 0;\n queueList.forEach(function (fn) {\n fn();\n });\n });\n\n observer.observe(hiddenDiv, { attributes: true });\n\n return function nextTick(fn) {\n if (!queue.length) {\n hiddenDiv.setAttribute('yes', 'no');\n }\n queue.push(fn);\n };\n }\n\n if (canPost) {\n window.addEventListener('message', function (ev) {\n var source = ev.source;\n if ((source === window || source === null) && ev.data === 'process-tick') {\n ev.stopPropagation();\n if (queue.length > 0) {\n var fn = queue.shift();\n fn();\n }\n }\n }, true);\n\n return function nextTick(fn) {\n queue.push(fn);\n window.postMessage('process-tick', '*');\n };\n }\n\n return function nextTick(fn) {\n setTimeout(fn, 0);\n };\n})();\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\n// TODO(shtylman)\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\n\n\n/** WEBPACK FOOTER **\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactContext\n */\n\n'use strict';\n\nvar assign = require(\"./Object.assign\");\nvar emptyObject = require(\"./emptyObject\");\nvar warning = require(\"./warning\");\n\nvar didWarn = false;\n\n/**\n * Keeps track of the current context.\n *\n * The context is automatically passed down the component ownership hierarchy\n * and is accessible via `this.context` on ReactCompositeComponents.\n */\nvar ReactContext = {\n\n /**\n * @internal\n * @type {object}\n */\n current: emptyObject,\n\n /**\n * Temporarily extends the current context while executing scopedCallback.\n *\n * A typical use case might look like\n *\n * render: function() {\n * var children = ReactContext.withContext({foo: 'foo'}, () => (\n *\n * ));\n * return
{children}
;\n * }\n *\n * @param {object} newContext New context to merge into the existing context\n * @param {function} scopedCallback Callback to run with the new context\n * @return {ReactComponent|array}\n */\n withContext: function(newContext, scopedCallback) {\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n didWarn,\n 'withContext is deprecated and will be removed in a future version. ' +\n 'Use a wrapper component with getChildContext instead.'\n ) : null);\n\n didWarn = true;\n }\n\n var result;\n var previousContext = ReactContext.current;\n ReactContext.current = assign({}, previousContext, newContext);\n try {\n result = scopedCallback();\n } finally {\n ReactContext.current = previousContext;\n }\n return result;\n }\n\n};\n\nmodule.exports = ReactContext;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactContext.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n *\n * The depth indicate how many composite components are above this render level.\n */\nvar ReactCurrentOwner = {\n\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactCurrentOwner.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Object.assign\n */\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\n'use strict';\n\nfunction assign(target, sources) {\n if (target == null) {\n throw new TypeError('Object.assign target cannot be null or undefined');\n }\n\n var to = Object(target);\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n var nextSource = arguments[nextIndex];\n if (nextSource == null) {\n continue;\n }\n\n var from = Object(nextSource);\n\n // We don't currently support accessors nor proxies. Therefore this\n // copy cannot throw. If we ever supported this then we must handle\n // exceptions and side-effects. We don't support symbols so they won't\n // be transferred.\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n }\n\n return to;\n}\n\nmodule.exports = assign;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/Object.assign.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\nfunction makeEmptyFunction(arg) {\n return function() {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function() { return this; };\nemptyFunction.thatReturnsArgument = function(arg) { return arg; };\n\nmodule.exports = emptyFunction;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/emptyFunction.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule joinClasses\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Combines multiple className strings into one.\n * http://jsperf.com/joinclasses-args-vs-array\n *\n * @param {...?string} classes\n * @return {string}\n */\nfunction joinClasses(className/*, ... */) {\n if (!className) {\n className = '';\n }\n var nextClass;\n var argLength = arguments.length;\n if (argLength > 1) {\n for (var ii = 1; ii < argLength; ii++) {\n nextClass = arguments[ii];\n if (nextClass) {\n className = (className ? className + ' ' : '') + nextClass;\n }\n }\n }\n return className;\n}\n\nmodule.exports = joinClasses;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/joinClasses.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyObject\n */\n\n\"use strict\";\n\nvar emptyObject = {};\n\nif (\"production\" !== process.env.NODE_ENV) {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/emptyObject.js\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1e923b3d78acdfc1fd2b","webpack:///./index.js","webpack:///./lib/draggable.js","webpack:///external \"React\"","webpack:///./~/object-assign/index.js"],"names":[],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;;GAEE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACnC,GAAE;;AAEF,EAAC,oBAAoB,EAAE,WAAW;;GAEhC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/D,GAAE;;EAED,eAAe,EAAE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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 1e923b3d78acdfc1fd2b\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\n\nfunction createUIEvent(draggable) {\n\treturn {\n\t\tposition: {\n\t\t\ttop: draggable.state.clientY,\n\t\t\tleft: draggable.state.clientX\n\t\t}\n\t};\n}\n\nfunction canDragY(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n\treturn draggable.props.axis === 'both' ||\n\t\t\tdraggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length, element = null; i < length, element = array[i]; i++) {\n if (callback.apply(callback, [element, i, array])) return element;\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window // works on most browsers\n || 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.attachEvent) {\n\t\tel.attachEvent('on' + event, handler);\n\t} else if (el.addEventListener) {\n\t\tel.addEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = handler;\n\t}\n}\n\nfunction removeEvent(el, event, handler) {\n\tif (!el) { return; }\n\tif (el.detachEvent) {\n\t\tel.detachEvent('on' + event, handler);\n\t} else if (el.removeEventListener) {\n\t\tel.removeEventListener(event, handler, true);\n\t} else {\n\t\tel['on' + event] = null;\n\t}\n}\n\nmodule.exports = React.createClass({\n\tdisplayName: 'Draggable',\n\n\tpropTypes: {\n\t\t/**\n\t\t * `axis` determines which axis the draggable can move.\n\t\t *\n\t\t * 'both' allows movement horizontally and vertically.\n\t\t * 'x' limits movement to horizontal axis.\n\t\t * 'y' limits movement to vertical axis.\n\t\t *\n\t\t * Defaults to 'both'.\n\t\t */\n\t\taxis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n\t\t/**\n\t\t * `handle` specifies a selector to be used as the handle that initiates drag.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t \treturn (\n\t\t * \t \t \t\n\t\t * \t \t \t
\n\t\t * \t \t \t
Click me to drag
\n\t\t * \t \t \t
This is some other content
\n\t\t * \t \t \t
\n\t\t * \t \t\t
\n\t\t * \t \t);\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\thandle: React.PropTypes.string,\n\n\t\t/**\n\t\t * `cancel` specifies a selector to be used to prevent drag initialization.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return(\n\t\t * \t \n\t\t * \t
\n\t\t * \t \t
You can't drag from here
\n\t\t *\t\t\t\t\t\t
Dragging here works fine
\n\t\t * \t
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tcancel: React.PropTypes.string,\n\n\t\t/**\n\t\t * `grid` specifies the x and y that dragging should snap to.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I snap to a 25 x 25 grid
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tgrid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n\t\t/**\n\t\t * `start` specifies the x and y that the dragged item should start at\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I start with left: 25px; top: 25px;
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tstart: React.PropTypes.object,\n\n\t\t/**\n\t\t * `zIndex` specifies the zIndex to use while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```jsx\n\t\t * \tvar App = React.createClass({\n\t\t * \t render: function () {\n\t\t * \t return (\n\t\t * \t \n\t\t * \t
I have a zIndex
\n\t\t * \t
\n\t\t * \t );\n\t\t * \t }\n\t\t * \t});\n\t\t * ```\n\t\t */\n\t\tzIndex: React.PropTypes.number,\n\n\t\t/**\n\t\t * Called when dragging starts.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStart: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called while dragging.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonDrag: React.PropTypes.func,\n\n\t\t/**\n\t\t * Called when dragging stops.\n\t\t *\n\t\t * Example:\n\t\t *\n\t\t * ```js\n\t\t *\tfunction (event, ui) {}\n\t\t * ```\n\t\t *\n\t\t * `event` is the Event that was triggered.\n\t\t * `ui` is an object:\n\t\t *\n\t\t * ```js\n\t\t *\t{\n\t\t *\t\tposition: {top: 0, left: 0}\n\t\t *\t}\n\t\t * ```\n\t\t */\n\t\tonStop: React.PropTypes.func,\n\n\t\t/**\n\t\t * A workaround option which can be passed if onMouseDown needs to be accessed, since it'll always be blocked (due to that there's internal use of onMouseDown)\n\t\t *\n\t\t */\n\t\tonMouseDown: React.PropTypes.func\n\t},\n\n\tcomponentWillUnmount: function() {\n\t\t// Remove any leftover event handlers\n\t\tremoveEvent(window, dragEventFor['move'], this.handleDrag);\n\t\tremoveEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\tgetDefaultProps: function () {\n\t\treturn {\n\t\t\taxis: 'both',\n\t\t\thandle: null,\n\t\t\tcancel: null,\n\t\t\tgrid: null,\n\t\t\tstart: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tzIndex: NaN,\n\t\t\tonStart: emptyFunction,\n\t\t\tonDrag: emptyFunction,\n\t\t\tonStop: emptyFunction,\n\t\t\tonMouseDown: emptyFunction\n\t\t};\n\t},\n\n\tgetInitialState: function () {\n\t\treturn {\n\t\t\t// Whether or not currently dragging\n\t\t\tdragging: false,\n\n\t\t\t// Start top/left of this.getDOMNode()\n\t\t\tstartX: 0, startY: 0,\n\n\t\t\t// Offset between start top/left and mouse top/left\n\t\t\toffsetX: 0, offsetY: 0,\n\n\t\t\t// Current top/left of this.getDOMNode()\n\t\t\tclientX: this.props.start.x, clientY: this.props.start.y\n\t\t};\n\t},\n\n\thandleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n\t\t// Make it possible to attach event handlers on top of this one\n\t\tthis.props.onMouseDown(e);\n\n\t\tvar node = this.getDOMNode();\n\n\t\t// Short circuit if handle or cancel prop was provided and selector doesn't match\n\t\tif ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n\t\t\t(this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n\t\t\treturn;\n\t\t}\n\n var dragPoint = getControlPosition(e);\n\n\t\t// Initiate dragging\n\t\tthis.setState({\n\t\t\tdragging: true,\n\t\t\toffsetX: parseInt(dragPoint.clientX, 10),\n\t\t\toffsetY: parseInt(dragPoint.clientY, 10),\n\t\t\tstartX: parseInt(node.style.left, 10) || 0,\n\t\t\tstartY: parseInt(node.style.top, 10) || 0\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStart(e, createUIEvent(this));\n\n\t\t// Add event handlers\n\t\taddEvent(window, dragEventFor['move'], this.handleDrag);\n\t\taddEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDragEnd: function (e) {\n\t\t// Short circuit if not currently dragging\n\t\tif (!this.state.dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Turn off dragging\n\t\tthis.setState({\n\t\t\tdragging: false\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onStop(e, createUIEvent(this));\n\n\t\t// Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n\t},\n\n\thandleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n\t\t// Calculate top and left\n var clientX = (this.state.startX + (dragPoint.clientX - this.state.offsetX));\n var clientY = (this.state.startY + (dragPoint.clientY - this.state.offsetY));\n\n\t\t// Snap to grid if prop has been provided\n\t\tif (Array.isArray(this.props.grid)) {\n\t\t\tvar directionX = clientX < parseInt(this.state.clientX, 10) ? -1 : 1;\n\t\t\tvar directionY = clientY < parseInt(this.state.clientY, 10) ? -1 : 1;\n\n\t\t\tclientX = Math.abs(clientX - parseInt(this.state.clientX, 10)) >= this.props.grid[0]\n\t\t\t\t\t? (parseInt(this.state.clientX, 10) + (this.props.grid[0] * directionX))\n\t\t\t\t\t: this.state.clientX;\n\n\t\t\tclientY = Math.abs(clientY - parseInt(this.state.clientY, 10)) >= this.props.grid[1]\n\t\t\t\t\t? (parseInt(this.state.clientY, 10) + (this.props.grid[1] * directionY))\n\t\t\t\t\t: this.state.clientY;\n\t\t}\n\n\t\t// Update top and left\n\t\tthis.setState({\n\t\t\tclientX: clientX,\n\t\t\tclientY: clientY\n\t\t});\n\n\t\t// Call event handler\n\t\tthis.props.onDrag(e, createUIEvent(this));\n\t},\n\n\trender: function () {\n\t\tvar style = {\n\t\t\t// Set top if vertical drag is enabled\n\t\t\ttop: canDragY(this)\n\t\t\t\t? this.state.clientY\n\t\t\t\t: this.state.startY,\n\n\t\t\t// Set left if horizontal drag is enabled\n\t\t\tleft: canDragX(this)\n\t\t\t\t? this.state.clientX\n\t\t\t\t: this.state.startX\n\t\t};\n\n\t\t// Set zIndex if currently dragging and prop has been provided\n\t\tif (this.state.dragging && !isNaN(this.props.zIndex)) {\n\t\t\tstyle.zIndex = this.props.zIndex;\n\t\t}\n\n\t\tvar className = (this.props.children.props.className || '') + ' react-draggable';\n\t\tif (this.state.dragging) {\n\t\t\tclassName += ' react-draggable-dragging';\n\t\t}\n\n\t\t// Reuse the child provided\n\t\t// This makes it flexible to use whatever element is wanted (div, ul, etc)\n\t\treturn React.cloneElement(React.Children.only(this.props.children), {\n\t\t\tstyle: assign({}, this.props.children.props.style || {}, style),\n\t\t\tclassName: className,\n\n\t\t\tonMouseDown: this.handleDragStart,\n\t\t\tonTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n\t\t\tonMouseUp: this.handleDragEnd,\n\t\t\tonTouchEnd: this.handleDragEnd\n\t\t});\n\t}\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/"],"sourceRoot":"","file":"./dist/react-draggable.js"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 5e08e5e7..893824a4 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}var React=__webpack_require__(2),emptyFunction=function(){},cloneWithProps=__webpack_require__(3);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className="react-draggable";return this.state.dragging&&(className+=" react-draggable-dragging"),cloneWithProps(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){(function(process){"use strict";function cloneWithProps(child,props){"production"!==process.env.NODE_ENV&&("production"!==process.env.NODE_ENV?warning(!child.ref,"You are calling cloneWithProps() on a child with a ref. This is dangerous because you're creating a new child which will not be added as a ref to its parent."):null);var newProps=ReactPropTransferer.mergeProps(props,child.props);return!newProps.hasOwnProperty(CHILDREN_PROP)&&child.props.hasOwnProperty(CHILDREN_PROP)&&(newProps.children=child.props.children),ReactElement.createElement(child.type,newProps)}var ReactElement=__webpack_require__(4),ReactPropTransferer=__webpack_require__(5),keyOf=__webpack_require__(6),warning=__webpack_require__(7),CHILDREN_PROP=keyOf({children:null});module.exports=cloneWithProps}).call(exports,__webpack_require__(8))},function(module,exports,__webpack_require__){(function(process){"use strict";function defineWarningProperty(object,key){Object.defineProperty(object,key,{configurable:!1,enumerable:!0,get:function(){return this._store?this._store[key]:null},set:function(value){"production"!==process.env.NODE_ENV?warning(!1,"Don't set the %s property of the React element. Instead, specify the correct value when initially creating the element.",key):null,this._store[key]=value}})}function defineMutationMembrane(prototype){try{var pseudoFrozenProperties={props:!0};for(var key in pseudoFrozenProperties)defineWarningProperty(prototype,key);useMutationMembrane=!0}catch(x){}}var ReactContext=__webpack_require__(9),ReactCurrentOwner=__webpack_require__(10),assign=__webpack_require__(11),warning=__webpack_require__(7),RESERVED_PROPS={key:!0,ref:!0},useMutationMembrane=!1,ReactElement=function(type,key,ref,owner,context,props){if(this.type=type,this.key=key,this.ref=ref,this._owner=owner,this._context=context,"production"!==process.env.NODE_ENV){this._store={props:props,originalProps:assign({},props)};try{Object.defineProperty(this._store,"validated",{configurable:!1,enumerable:!1,writable:!0})}catch(x){}if(this._store.validated=!1,useMutationMembrane)return void Object.freeze(this)}this.props=props};ReactElement.prototype={_isReactElement:!0},"production"!==process.env.NODE_ENV&&defineMutationMembrane(ReactElement.prototype),ReactElement.createElement=function(type,config,children){var propName,props={},key=null,ref=null;if(null!=config){ref=void 0===config.ref?null:config.ref,key=void 0===config.key?null:""+config.key;for(propName in config)config.hasOwnProperty(propName)&&!RESERVED_PROPS.hasOwnProperty(propName)&&(props[propName]=config[propName])}var childrenLength=arguments.length-2;if(1===childrenLength)props.children=children;else if(childrenLength>1){for(var childArray=Array(childrenLength),i=0;childrenLength>i;i++)childArray[i]=arguments[i+2];props.children=childArray}if(type&&type.defaultProps){var defaultProps=type.defaultProps;for(propName in defaultProps)"undefined"==typeof props[propName]&&(props[propName]=defaultProps[propName])}return new ReactElement(type,key,ref,ReactCurrentOwner.current,ReactContext.current,props)},ReactElement.createFactory=function(type){var factory=ReactElement.createElement.bind(null,type);return factory.type=type,factory},ReactElement.cloneAndReplaceProps=function(oldElement,newProps){var newElement=new ReactElement(oldElement.type,oldElement.key,oldElement.ref,oldElement._owner,oldElement._context,newProps);return"production"!==process.env.NODE_ENV&&(newElement._store.validated=oldElement._store.validated),newElement},ReactElement.cloneElement=function(element,config,children){var propName,props=assign({},element.props),key=element.key,ref=element.ref,owner=element._owner;if(null!=config){void 0!==config.ref&&(ref=config.ref,owner=ReactCurrentOwner.current),void 0!==config.key&&(key=""+config.key);for(propName in config)config.hasOwnProperty(propName)&&!RESERVED_PROPS.hasOwnProperty(propName)&&(props[propName]=config[propName])}var childrenLength=arguments.length-2;if(1===childrenLength)props.children=children;else if(childrenLength>1){for(var childArray=Array(childrenLength),i=0;childrenLength>i;i++)childArray[i]=arguments[i+2];props.children=childArray}return new ReactElement(element.type,key,ref,owner,element._context,props)},ReactElement.isValidElement=function(object){var isElement=!(!object||!object._isReactElement);return isElement},module.exports=ReactElement}).call(exports,__webpack_require__(8))},function(module,exports,__webpack_require__){"use strict";function createTransferStrategy(mergeStrategy){return function(props,key,value){props[key]=props.hasOwnProperty(key)?mergeStrategy(props[key],value):value}}function transferInto(props,newProps){for(var thisKey in newProps)if(newProps.hasOwnProperty(thisKey)){var transferStrategy=TransferStrategies[thisKey];transferStrategy&&TransferStrategies.hasOwnProperty(thisKey)?transferStrategy(props,thisKey,newProps[thisKey]):props.hasOwnProperty(thisKey)||(props[thisKey]=newProps[thisKey])}return props}var assign=__webpack_require__(11),emptyFunction=__webpack_require__(12),joinClasses=__webpack_require__(13),transferStrategyMerge=createTransferStrategy(function(a,b){return assign({},b,a)}),TransferStrategies={children:emptyFunction,className:createTransferStrategy(joinClasses),style:transferStrategyMerge},ReactPropTransferer={mergeProps:function(oldProps,newProps){return transferInto(assign({},oldProps),newProps)}};module.exports=ReactPropTransferer},function(module){var keyOf=function(oneKeyObj){var key;for(key in oneKeyObj)if(oneKeyObj.hasOwnProperty(key))return key;return null};module.exports=keyOf},function(module,exports,__webpack_require__){(function(process){"use strict";var emptyFunction=__webpack_require__(12),warning=emptyFunction;"production"!==process.env.NODE_ENV&&(warning=function(condition,format){for(var args=[],$__0=2,$__1=arguments.length;$__1>$__0;$__0++)args.push(arguments[$__0]);if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(format.length<10||/^[s\W]*$/.test(format))throw new Error("The warning format should be able to uniquely identify this warning. Please, use a more descriptive format than: "+format);if(0!==format.indexOf("Failed Composite propType: ")&&!condition){var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});console.warn(message);try{throw new Error(message)}catch(x){}}}),module.exports=warning}).call(exports,__webpack_require__(8))},function(module){function noop(){}var process=module.exports={};process.nextTick=function(){var canSetImmediate="undefined"!=typeof window&&window.setImmediate,canMutationObserver="undefined"!=typeof window&&window.MutationObserver,canPost="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};var queue=[];if(canMutationObserver){var hiddenDiv=document.createElement("div"),observer=new MutationObserver(function(){var queueList=queue.slice();queue.length=0,queueList.forEach(function(fn){fn()})});return observer.observe(hiddenDiv,{attributes:!0}),function(fn){queue.length||hiddenDiv.setAttribute("yes","no"),queue.push(fn)}}return canPost?(window.addEventListener("message",function(ev){var source=ev.source;if((source===window||null===source)&&"process-tick"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage("process-tick","*")}):function(fn){setTimeout(fn,0)}}(),process.title="browser",process.browser=!0,process.env={},process.argv=[],process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(){throw new Error("process.chdir is not supported")}},function(module,exports,__webpack_require__){(function(process){"use strict";var assign=__webpack_require__(11),emptyObject=__webpack_require__(14),warning=__webpack_require__(7),didWarn=!1,ReactContext={current:emptyObject,withContext:function(newContext,scopedCallback){"production"!==process.env.NODE_ENV&&("production"!==process.env.NODE_ENV?warning(didWarn,"withContext is deprecated and will be removed in a future version. Use a wrapper component with getChildContext instead."):null,didWarn=!0);var result,previousContext=ReactContext.current;ReactContext.current=assign({},previousContext,newContext);try{result=scopedCallback()}finally{ReactContext.current=previousContext}return result}};module.exports=ReactContext}).call(exports,__webpack_require__(8))},function(module){"use strict";var ReactCurrentOwner={current:null};module.exports=ReactCurrentOwner},function(module){"use strict";function assign(target){if(null==target)throw new TypeError("Object.assign target cannot be null or undefined");for(var to=Object(target),hasOwnProperty=Object.prototype.hasOwnProperty,nextIndex=1;nextIndex1)for(var ii=1;argLength>ii;ii++)nextClass=arguments[ii],nextClass&&(className=(className?className+" ":"")+nextClass);return className}module.exports=joinClasses},function(module,exports,__webpack_require__){(function(process){"use strict";var emptyObject={};"production"!==process.env.NODE_ENV&&Object.freeze(emptyObject),module.exports=emptyObject}).call(exports,__webpack_require__(8))}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){return{position:{top:draggable.state.clientY,left:draggable.state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,element=(array.length,null);element=array[i];i++)if(callback.apply(callback,[element,i,array]))return element}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}();module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.object,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,startX:0,startY:0,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){this.props.onMouseDown(e);var node=this.getDOMNode();if(!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:parseInt(dragPoint.clientX,10),offsetY:parseInt(dragPoint.clientY,10),startX:parseInt(node.style.left,10)||0,startY:parseInt(node.style.top,10)||0}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=this.state.startX+(dragPoint.clientX-this.state.offsetX),clientY=this.state.startY+(dragPoint.clientY-this.state.offsetY);if(Array.isArray(this.props.grid)){var directionX=clientX=this.props.grid[0]?parseInt(this.state.clientX,10)+this.props.grid[0]*directionX:this.state.clientX,clientY=Math.abs(clientY-parseInt(this.state.clientY,10))>=this.props.grid[1]?parseInt(this.state.clientY,10)+this.props.grid[1]*directionY:this.state.clientY}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var style={top:canDragY(this)?this.state.clientY:this.state.startY,left:canDragX(this)?this.state.clientX:this.state.startX};this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=(this.props.children.props.className||"")+" react-draggable";return this.state.dragging&&(className+=" react-draggable-dragging"),React.cloneElement(React.Children.only(this.props.children),{style:assign({},this.props.children.props.style||{},style),className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target){for(var from,keys,to=ToObject(target),s=1;s - - + + - \ No newline at end of file + From 9cf8840de9578ca6e45f040742138cd360e04b42 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 1 May 2015 08:55:54 -0500 Subject: [PATCH 020/412] Fixup for bad source maps in demo --- webpack.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/webpack.config.js b/webpack.config.js index 9b965bbf..f9d0f4d4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,6 +3,7 @@ module.exports = { output: { filename: './dist/react-draggable.js', sourceMapFilename: './dist/react-draggable.map', + devtoolModuleFilenameTemplate: '../[resource-path]', library: 'ReactDraggable', libraryTarget: 'umd' }, From 80ce61050f2e484bcbd772ce79f32afdc4884437 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 1 May 2015 08:57:00 -0500 Subject: [PATCH 021/412] Input source map into minified source --- script/build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/script/build b/script/build index cfba8090..7a513579 100755 --- a/script/build +++ b/script/build @@ -5,4 +5,5 @@ node_modules/.bin/uglifyjs dist/react-draggable.js \ --output dist/react-draggable.min.js \ --source-map dist/react-draggable.min.map \ --source-map-url react-draggable.min.map \ - --compress warnings=false \ No newline at end of file + --in-source-map dist/react-draggable.map \ + --compress warnings=false From 611c895d0c9f91277b4e73c4fc96d05a36ab24ed Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 1 May 2015 09:42:30 -0500 Subject: [PATCH 022/412] Many fixes for 0.5.0 release. See below. Fixes: * #48 (draggable start at current position), * #34 (move element from javascript), * #46 (spaces to tabs), * Parts of #31 ('moveOnStartChange', add node to drag callbacks, fix pendingState in drag callbacks) * Linting errors * Documentation --- README.md | 24 +- example/index.html | 13 +- lib/draggable.js | 748 +++++++++++++++++++++------------------- lib/styles.css | 8 - package.json | 4 +- specs/draggable.spec.js | 3 +- 6 files changed, 428 insertions(+), 372 deletions(-) delete mode 100644 lib/styles.css diff --git a/README.md b/README.md index e73bf66f..f760aabf 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,8 @@ var App = React.createClass({ // to whatever element is supplied as `this.props.children`. // Only a single element is allowed or an Error will be thrown. // + // The element is moved from its current position using absolute positioning. + // // `axis` determines which axis the draggable can move. // - 'both' allows movement horizontally and vertically (default). // - 'x' limits movement to horizontal axis. @@ -57,8 +59,6 @@ var App = React.createClass({ // // `grid` specifies the x and y that dragging should snap to. // - // `start` specifies the x and y that the dragged item should start at - // // `zIndex` specifies the zIndex to use while dragging. // // `onStart` is called when dragging starts. @@ -71,7 +71,6 @@ var App = React.createClass({ axis="x" handle=".handle" grid={[25, 25]} - start={{x: 25, y: 25}} zIndex={100} onStart={this.handleStart} onDrag={this.handleDrag} @@ -91,14 +90,29 @@ React.renderComponent(, document.body); ## Contributing - Fork the project -- `$ npm install && npm start` -- Make changes, webpack will watch and rebuild as you make changes +- `$ npm install` +- Make changes. +- Run a static server in this folder to see your changes. + For example: `$ npm install -g static-server; static-server .` and open + http://localhost:9080/example.index.html +- Run webpack in development mode to recompile changes as you make them: + `$ npm run dev` - Add appropriate tests - `$ npm test` - If tests don't pass, make them pass. - Update README with appropriate docs. +- Don't include `/dist` changes. These files are updated per-release. - Commit and PR +## Release checklist + +- Update CHANGELOG +- Update version in `bower.json` +- Update version in `package.json` +- Run build: `$ npm run build` +- Commit, tag, push +- `npm publish` + ## License MIT diff --git a/example/index.html b/example/index.html index 3d0ae9e5..f9116f8e 100644 --- a/example/index.html +++ b/example/index.html @@ -3,7 +3,6 @@ React Draggable - + .box { + box-sizing: border-box; + background: #fff; + border: 1px solid #999; + border-radius: 3px; + width: 180px; + height: 180px; + margin: 10px; + padding: 10px; + float: left; + } + From c1c936c8cdfa24df5191019cc365545e5b3b19ef Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 2 May 2015 17:11:36 -0500 Subject: [PATCH 032/412] Move user-select:none hack to body from element. Prevents ugly text selection if you move the mouse too quickly. --- lib/draggable.js | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 9986f4ba..2c04c82d 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -132,13 +132,8 @@ function snapToGrid(grid, pendingX, pendingY) { } // Useful for preventing blue highlights all over everything when dragging. -var userSelectStyle = { - WebkitUserSelect: 'none', - MozUserSelect: 'none', - msUserSelect: 'none', - OUserSelect: 'none', - userSelect: 'none', -}; +var userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' + + '-o-user-select:none;-ms-user-select:none;'; function createCSSTransform(style) { if (!style.x && !style.y) return {}; @@ -178,6 +173,13 @@ module.exports = React.createClass({ */ axis: React.PropTypes.oneOf(['both', 'x', 'y']), + /** + * By default, we add 'user-select:none' attributes to the document body + * to prevent ugly text selection during drag. If this is causing problems + * for your app, set this to `false`. + */ + enableUserSelectHack: React.PropTypes.bool, + /** * `handle` specifies a selector to be used as the handle that initiates drag. * @@ -340,6 +342,7 @@ module.exports = React.createClass({ cancel: null, grid: null, zIndex: NaN, + enableUserSelectHack: true, onStart: emptyFunction, onDrag: emptyFunction, onStop: emptyFunction, @@ -377,6 +380,13 @@ module.exports = React.createClass({ return; } + // Add a style to the body to disable user-select. This prevents text from + // being selected all over the page. + if (this.props.enableUserSelectHack) { + var style = document.body.getAttribute('style') || ''; + document.body.setAttribute('style', style + userSelectStyle); + } + var dragPoint = getControlPosition(e); // Initiate dragging. Set the current x and y as offsets @@ -402,6 +412,12 @@ module.exports = React.createClass({ return; } + // Remove user-select styles. + if (this.props.enableUserSelectHack) { + var style = document.body.getAttribute('style') || ''; + document.body.setAttribute('style', style.replace(userSelectStyle, '')); + } + // Turn off dragging this.setState({ dragging: false @@ -458,7 +474,7 @@ module.exports = React.createClass({ this.state.clientY : 0 }); - var style = assign({}, userSelectStyle, childStyle, transform); + var style = assign({}, childStyle, transform); // Set zIndex if currently dragging and prop has been provided if (this.state.dragging && !isNaN(this.props.zIndex)) { From 968354bb9cf99e70ee89b6c83427c0bfd7e26d25 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 2 May 2015 17:28:40 -0500 Subject: [PATCH 033/412] Refactor userSelect and add test. --- lib/draggable.js | 24 +++++++++++------- specs/draggable.spec.js | 54 +++++++++++++++++++++++++++++------------ 2 files changed, 53 insertions(+), 25 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 2c04c82d..86c969bc 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -135,6 +135,18 @@ function snapToGrid(grid, pendingX, pendingY) { var userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' + '-o-user-select:none;-ms-user-select:none;'; +function addUserSelectStyles(draggable) { + if (!draggable.props.enableUserSelectHack) return; + var style = document.body.getAttribute('style') || ''; + document.body.setAttribute('style', style + userSelectStyle); +} + +function removeUserSelectStyles(draggable) { + if (!draggable.props.enableUserSelectHack) return; + var style = document.body.getAttribute('style') || ''; + document.body.setAttribute('style', style.replace(userSelectStyle, '')); +} + function createCSSTransform(style) { if (!style.x && !style.y) return {}; // Replace unitless items with px @@ -333,6 +345,7 @@ module.exports = React.createClass({ // Remove any leftover event handlers removeEvent(window, dragEventFor['move'], this.handleDrag); removeEvent(window, dragEventFor['end'], this.handleDragEnd); + removeUserSelectStyles(this); }, getDefaultProps: function () { @@ -382,10 +395,7 @@ module.exports = React.createClass({ // Add a style to the body to disable user-select. This prevents text from // being selected all over the page. - if (this.props.enableUserSelectHack) { - var style = document.body.getAttribute('style') || ''; - document.body.setAttribute('style', style + userSelectStyle); - } + addUserSelectStyles(this); var dragPoint = getControlPosition(e); @@ -412,11 +422,7 @@ module.exports = React.createClass({ return; } - // Remove user-select styles. - if (this.props.enableUserSelectHack) { - var style = document.body.getAttribute('style') || ''; - document.body.setAttribute('style', style.replace(userSelectStyle, '')); - } + removeUserSelectStyles(this); // Turn off dragging this.setState({ diff --git a/specs/draggable.spec.js b/specs/draggable.spec.js index 24384955..83ecf89c 100644 --- a/specs/draggable.spec.js +++ b/specs/draggable.spec.js @@ -3,11 +3,16 @@ var React = require('react'); var TestUtils = require('react/lib/ReactTestUtils'); var Draggable = require('../index'); -/*global describe,it,expect */ +/*global describe,it,expect,afterEach */ describe('react-draggable', function () { + var drag; + afterEach(function() { + if (drag && drag.getDOMNode) drag.componentWillUnmount(); + }); + describe('props', function () { it('should have default properties', function () { - var drag = TestUtils.renderIntoDocument(
); + drag = TestUtils.renderIntoDocument(
); expect(drag.props.axis).toEqual('both'); expect(drag.props.handle).toEqual(null); @@ -19,15 +24,13 @@ describe('react-draggable', function () { }); it('should pass style and className properly from child', function () { - var el =
; + drag =
; var renderer = TestUtils.createRenderer(); - renderer.render(el); + renderer.render(drag); var output = renderer.getRenderOutput(); expect(output.props.className).toEqual('foo react-draggable'); expect(output.props.style.color).toEqual('black'); - // This should get added - expect(output.props.style.userSelect).toEqual('none'); }); it('should honor props', function () { @@ -35,7 +38,7 @@ describe('react-draggable', function () { function handleDrag() {} function handleStop() {} - var drag = TestUtils.renderIntoDocument( + drag = TestUtils.renderIntoDocument(
@@ -76,7 +79,7 @@ describe('react-draggable', function () { it('should call onStop when dragging ends', function () { var called = false; - var drag = TestUtils.renderIntoDocument( + drag = TestUtils.renderIntoDocument(
@@ -88,7 +91,7 @@ describe('react-draggable', function () { }); it('should render with translate()', function () { - var drag = TestUtils.renderIntoDocument( + drag = TestUtils.renderIntoDocument(
@@ -105,18 +108,37 @@ describe('react-draggable', function () { var style = node.getAttribute('style'); expect(style.indexOf('transform: translate(100px, 100px);')).not.toEqual(-1); }); + + it('should add and remove user-select styles', function () { + var userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' + + '-o-user-select:none;-ms-user-select:none;'; + + drag = TestUtils.renderIntoDocument( + +
+ + ); + + var node = drag.getDOMNode(); + + expect(document.body.getAttribute('style')).toEqual(''); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + expect(document.body.getAttribute('style')).toEqual(userSelectStyle); + TestUtils.Simulate.mouseUp(node); + expect(document.body.getAttribute('style')).toEqual(''); + }); }); describe('interaction', function () { it('should initialize dragging onmousedown', function () { - var drag = TestUtils.renderIntoDocument(
); + drag = TestUtils.renderIntoDocument(
); TestUtils.Simulate.mouseDown(drag.getDOMNode()); expect(drag.state.dragging).toEqual(true); }); it('should only initialize dragging onmousedown of handle', function () { - var drag = TestUtils.renderIntoDocument( + drag = TestUtils.renderIntoDocument(
Handle
@@ -133,7 +155,7 @@ describe('react-draggable', function () { }); it('should not initialize dragging onmousedown of cancel', function () { - var drag = TestUtils.renderIntoDocument( + drag = TestUtils.renderIntoDocument(
Cancel
@@ -150,7 +172,7 @@ describe('react-draggable', function () { }); it('should discontinue dragging onmouseup', function () { - var drag = TestUtils.renderIntoDocument(
); + drag = TestUtils.renderIntoDocument(
); TestUtils.Simulate.mouseDown(drag.getDOMNode()); expect(drag.state.dragging).toEqual(true); @@ -162,7 +184,7 @@ describe('react-draggable', function () { describe('validation', function () { it('should result with invariant when there isn\'t any children', function () { - var drag = (); + drag = (); var error = false; try { @@ -175,7 +197,7 @@ describe('react-draggable', function () { }); it('should result with invariant if there\'s more than a single child', function () { - var drag = (
); + drag = (
); var error = false; try { From b28566af76c66ba430886230d0b80c5e87db5d20 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 2 May 2015 17:42:29 -0500 Subject: [PATCH 034/412] Cancel dragging if callbacks return boolean false. --- lib/draggable.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 86c969bc..44a98a25 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -276,6 +276,7 @@ module.exports = React.createClass({ /** * Called when dragging starts. + * If this function returns the boolean false, dragging will be canceled. * * Example: * @@ -296,6 +297,7 @@ module.exports = React.createClass({ /** * Called while dragging. + * If this function returns the boolean false, dragging will be canceled. * * Example: * @@ -393,12 +395,16 @@ module.exports = React.createClass({ return; } + // Call event handler. If it returns explicit false, cancel. + var shouldStart = this.props.onStart(e, createUIEvent(this)); + if (shouldStart === false) return; + + var dragPoint = getControlPosition(e); + // Add a style to the body to disable user-select. This prevents text from // being selected all over the page. addUserSelectStyles(this); - var dragPoint = getControlPosition(e); - // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us // to drag elements around even if they have been moved, without issue. @@ -408,8 +414,6 @@ module.exports = React.createClass({ offsetY: dragPoint.clientY - this.state.clientY }); - // Call event handler - this.props.onStart(e, createUIEvent(this)); // Add event handlers addEvent(window, dragEventFor['move'], this.handleDrag); @@ -450,14 +454,15 @@ module.exports = React.createClass({ clientX = coords[0], clientY = coords[1]; } + // Call event handler. If it returns explicit false, cancel. + var shouldUpdate = this.props.onDrag(e, createUIEvent(this)); + if (shouldUpdate === false) return this.handleDragEnd(); + // Update transform this.setState({ clientX: clientX, clientY: clientY }); - - // Call event handler - this.props.onDrag(e, createUIEvent(this)); }, render: function () { From ca2058a65194781edcb6b89bc4181c3087980ef4 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 2 May 2015 18:46:07 -0500 Subject: [PATCH 035/412] Add bounds options. Fixes #36, #35, #31. --- README.md | 5 ++ example/index.html | 22 ++++++-- lib/draggable.js | 118 ++++++++++++++++++++++++++++++++++++++++ specs/draggable.spec.js | 1 + 4 files changed, 141 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 0f68c3b8..91d56e90 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,11 @@ var App = React.createClass({ // // `grid` specifies the x and y that dragging should snap to. // + // `bounds` specifies movement boundaries. Pass: + // - 'parent' restricts movement within the node's offsetParent + // (nearest node with position relative or absolute), or + // - An object with left, top, right, and bottom properties. + // // `zIndex` specifies the zIndex to use while dragging. // // `onStart` is called when dragging starts. diff --git a/example/index.html b/example/index.html index 352b1722..c89f2eb2 100644 --- a/example/index.html +++ b/example/index.html @@ -108,14 +108,26 @@

React Draggable

I snap to a 50 x 50 grid
- -
- I already have left and top properties assigned. -
+ +
I can only be moved within 300px bounds.
+
+ +
+ I can only be moved within my offsetParent.

+ Both parent padding and child margin work properly. +
+
+ +
+ I also can only be moved within my offsetParent.

+ Both parent padding and child margin work properly. +
+
+
- I already have bottom and right properties assigned. + I already have an absolute position.
diff --git a/lib/draggable.js b/lib/draggable.js index 44a98a25..d0880348 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -125,6 +125,82 @@ function removeEvent(el, event, handler) { } } +function outerHeight(node) { + // This is deliberately excluding margin for our calculations, since we are using + // offsetTop which is including margin. See getBoundPosition + var height = node.clientHeight; + var computedStyle = window.getComputedStyle(node); + height += int(computedStyle.borderTopWidth); + height += int(computedStyle.borderBottomWidth); + return height; +} + +function outerWidth(node) { + // This is deliberately excluding margin for our calculations, since we are using + // offsetLeft which is including margin. See getBoundPosition + var width = node.clientWidth; + var computedStyle = window.getComputedStyle(node); + width += int(computedStyle.borderLeftWidth); + width += int(computedStyle.borderRightWidth); + return width; +} +function innerHeight(node) { + var height = node.clientHeight; + var computedStyle = window.getComputedStyle(node); + height -= int(computedStyle.paddingTop); + height -= int(computedStyle.paddingBottom); + return height; +} + +function innerWidth(node) { + var width = node.clientWidth; + var computedStyle = window.getComputedStyle(node); + width -= int(computedStyle.paddingLeft); + width -= int(computedStyle.paddingRight); + return width; +} + +function isNum(num) { + return typeof num === 'number' && !isNaN(num); +} + +function int(a) { + return parseInt(a, 10); +} + +function getBoundPosition(draggable, clientX, clientY) { + var bounds = JSON.parse(JSON.stringify(draggable.props.bounds)); + var node = draggable.getDOMNode(); + var parent = node.parentNode; + + if (bounds === 'parent') { + var nodeStyle = window.getComputedStyle(node); + var parentStyle = window.getComputedStyle(parent); + // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. + bounds = { + left: -node.offsetLeft + int(parentStyle.paddingLeft) + + int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft), + top: -node.offsetTop + int(parentStyle.paddingTop) + + int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop), + right: innerWidth(parent) - outerWidth(node) - node.offsetLeft, + bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop + }; + } else { + if (isNum(bounds.right)) bounds.right -= outerWidth(node); + if (isNum(bounds.bottom)) bounds.bottom -= outerHeight(node); + } + + // Keep x and y below right and bottom limits... + if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right); + if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom); + + // But above left and top limits. + if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left); + if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top); + + return [clientX, clientY]; +} + function snapToGrid(grid, pendingX, pendingY) { var x = Math.round(pendingX / grid[0]) * grid[0]; var y = Math.round(pendingY / grid[1]) * grid[1]; @@ -185,6 +261,42 @@ module.exports = React.createClass({ */ axis: React.PropTypes.oneOf(['both', 'x', 'y']), + /** + * `bounds` determines the range of movement available to the element. + * Available values are: + * + * 'parent' restricts movement within the Draggable's parent node. + * + * Alternatively, pass an object with the following properties, all of which are optional: + * + * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND} + * + * All values are in px. + * + * Example: + * + * ```jsx + * var App = React.createClass({ + * render: function () { + * return ( + * + *
Content
+ *
+ * ); + * } + * }); + * ``` + */ + bounds: React.PropTypes.oneOfType([ + React.PropTypes.shape({ + left: React.PropTypes.Number, + right: React.PropTypes.Number, + top: React.PropTypes.Number, + bottom: React.PropTypes.Number + }), + React.PropTypes.oneOf(['parent', false]) + ]), + /** * By default, we add 'user-select:none' attributes to the document body * to prevent ugly text selection during drag. If this is causing problems @@ -353,6 +465,7 @@ module.exports = React.createClass({ getDefaultProps: function () { return { axis: 'both', + bounds: false, handle: null, cancel: null, grid: null, @@ -454,6 +567,11 @@ module.exports = React.createClass({ clientX = coords[0], clientY = coords[1]; } + if (this.props.bounds) { + var pos = getBoundPosition(this, clientX, clientY); + clientX = pos[0], clientY = pos[1]; + } + // Call event handler. If it returns explicit false, cancel. var shouldUpdate = this.props.onDrag(e, createUIEvent(this)); if (shouldUpdate === false) return this.handleDragEnd(); diff --git a/specs/draggable.spec.js b/specs/draggable.spec.js index 83ecf89c..3df0b378 100644 --- a/specs/draggable.spec.js +++ b/specs/draggable.spec.js @@ -17,6 +17,7 @@ describe('react-draggable', function () { expect(drag.props.axis).toEqual('both'); expect(drag.props.handle).toEqual(null); expect(drag.props.cancel).toEqual(null); + expect(drag.props.bounds).toBeFalsy(); expect(isNaN(drag.props.zIndex)).toEqual(true); expect(typeof drag.props.onStart).toEqual('function'); expect(typeof drag.props.onDrag).toEqual('function'); From 77e7ee174dc7b66069efca3e458eb3b6116d814a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 2 May 2015 18:49:14 -0500 Subject: [PATCH 036/412] release v0.6.0 --- CHANGELOG.md | 7 ++ bower.json | 2 +- dist/react-draggable.js | 184 ++++++++++++++++++++++++++++++----- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 7 files changed, 171 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ee2c54d..7ba06186 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,3 +54,10 @@ - Move to CSS transforms. Simplifies implementation and fixes #48, #34, #31. - Fixup linting and space/tab errors. Fixes #46. +### 0.6.0 (May 2, 2015) + +- Breaking change: Cancel dragging when onDrag or onStart handlers return an explicit `false`. +- Fix sluggish movement when `grid` option was active. +- Example updates. +- Move `user-select:none` hack to document.body for better highlight prevention. +- Add `bounds` option to restrict dragging within parent or within coordinates. diff --git a/bower.json b/bower.json index 7400e783..8f0fcb05 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.5.0", + "version": "0.6.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 55179948..a87288bb 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -188,31 +188,103 @@ return /******/ (function(modules) { // webpackBootstrap } } - function snapToGrid(draggable, clientX, clientY) { - var stateX = parseInt(draggable.state.clientX, 10); - var stateY = parseInt(draggable.state.clientY, 10); - var directionX = clientX < stateX ? -1 : 1; - var directionY = clientY < stateY ? -1 : 1; + function outerHeight(node) { + // This is deliberately excluding margin for our calculations, since we are using + // offsetTop which is including margin. See getBoundPosition + var height = node.clientHeight; + var computedStyle = window.getComputedStyle(node); + height += int(computedStyle.borderTopWidth); + height += int(computedStyle.borderBottomWidth); + return height; + } + + function outerWidth(node) { + // This is deliberately excluding margin for our calculations, since we are using + // offsetLeft which is including margin. See getBoundPosition + var width = node.clientWidth; + var computedStyle = window.getComputedStyle(node); + width += int(computedStyle.borderLeftWidth); + width += int(computedStyle.borderRightWidth); + return width; + } + function innerHeight(node) { + var height = node.clientHeight; + var computedStyle = window.getComputedStyle(node); + height -= int(computedStyle.paddingTop); + height -= int(computedStyle.paddingBottom); + return height; + } + + function innerWidth(node) { + var width = node.clientWidth; + var computedStyle = window.getComputedStyle(node); + width -= int(computedStyle.paddingLeft); + width -= int(computedStyle.paddingRight); + return width; + } + + function isNum(num) { + return typeof num === 'number' && !isNaN(num); + } + + function int(a) { + return parseInt(a, 10); + } + + function getBoundPosition(draggable, clientX, clientY) { + var bounds = JSON.parse(JSON.stringify(draggable.props.bounds)); + var node = draggable.getDOMNode(); + var parent = node.parentNode; + + if (bounds === 'parent') { + var nodeStyle = window.getComputedStyle(node); + var parentStyle = window.getComputedStyle(parent); + // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. + bounds = { + left: -node.offsetLeft + int(parentStyle.paddingLeft) + + int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft), + top: -node.offsetTop + int(parentStyle.paddingTop) + + int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop), + right: innerWidth(parent) - outerWidth(node) - node.offsetLeft, + bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop + }; + } else { + if (isNum(bounds.right)) bounds.right -= outerWidth(node); + if (isNum(bounds.bottom)) bounds.bottom -= outerHeight(node); + } - clientX = Math.abs(clientX - stateX) >= draggable.props.grid[0] ? - (stateX + (draggable.props.grid[0] * directionX)) : - stateX; + // Keep x and y below right and bottom limits... + if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right); + if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom); - clientY = Math.abs(clientY - stateY) >= draggable.props.grid[1] ? - (stateY + (draggable.props.grid[1] * directionY)) : - stateY; + // But above left and top limits. + if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left); + if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top); return [clientX, clientY]; } + function snapToGrid(grid, pendingX, pendingY) { + var x = Math.round(pendingX / grid[0]) * grid[0]; + var y = Math.round(pendingY / grid[1]) * grid[1]; + return [x, y]; + } + // Useful for preventing blue highlights all over everything when dragging. - var userSelectStyle = { - WebkitUserSelect: 'none', - MozUserSelect: 'none', - msUserSelect: 'none', - OUserSelect: 'none', - userSelect: 'none', - }; + var userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' + + '-o-user-select:none;-ms-user-select:none;'; + + function addUserSelectStyles(draggable) { + if (!draggable.props.enableUserSelectHack) return; + var style = document.body.getAttribute('style') || ''; + document.body.setAttribute('style', style + userSelectStyle); + } + + function removeUserSelectStyles(draggable) { + if (!draggable.props.enableUserSelectHack) return; + var style = document.body.getAttribute('style') || ''; + document.body.setAttribute('style', style.replace(userSelectStyle, '')); + } function createCSSTransform(style) { if (!style.x && !style.y) return {}; @@ -252,6 +324,49 @@ return /******/ (function(modules) { // webpackBootstrap */ axis: React.PropTypes.oneOf(['both', 'x', 'y']), + /** + * `bounds` determines the range of movement available to the element. + * Available values are: + * + * 'parent' restricts movement within the Draggable's parent node. + * + * Alternatively, pass an object with the following properties, all of which are optional: + * + * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND} + * + * All values are in px. + * + * Example: + * + * ```jsx + * var App = React.createClass({ + * render: function () { + * return ( + * + *
Content
+ *
+ * ); + * } + * }); + * ``` + */ + bounds: React.PropTypes.oneOfType([ + React.PropTypes.shape({ + left: React.PropTypes.Number, + right: React.PropTypes.Number, + top: React.PropTypes.Number, + bottom: React.PropTypes.Number + }), + React.PropTypes.oneOf(['parent', false]) + ]), + + /** + * By default, we add 'user-select:none' attributes to the document body + * to prevent ugly text selection during drag. If this is causing problems + * for your app, set this to `false`. + */ + enableUserSelectHack: React.PropTypes.bool, + /** * `handle` specifies a selector to be used as the handle that initiates drag. * @@ -336,6 +451,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Called when dragging starts. + * If this function returns the boolean false, dragging will be canceled. * * Example: * @@ -356,6 +472,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Called while dragging. + * If this function returns the boolean false, dragging will be canceled. * * Example: * @@ -405,15 +522,18 @@ return /******/ (function(modules) { // webpackBootstrap // Remove any leftover event handlers removeEvent(window, dragEventFor['move'], this.handleDrag); removeEvent(window, dragEventFor['end'], this.handleDragEnd); + removeUserSelectStyles(this); }, getDefaultProps: function () { return { axis: 'both', + bounds: false, handle: null, cancel: null, grid: null, zIndex: NaN, + enableUserSelectHack: true, onStart: emptyFunction, onDrag: emptyFunction, onStop: emptyFunction, @@ -451,8 +571,16 @@ return /******/ (function(modules) { // webpackBootstrap return; } + // Call event handler. If it returns explicit false, cancel. + var shouldStart = this.props.onStart(e, createUIEvent(this)); + if (shouldStart === false) return; + var dragPoint = getControlPosition(e); + // Add a style to the body to disable user-select. This prevents text from + // being selected all over the page. + addUserSelectStyles(this); + // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us // to drag elements around even if they have been moved, without issue. @@ -462,8 +590,6 @@ return /******/ (function(modules) { // webpackBootstrap offsetY: dragPoint.clientY - this.state.clientY }); - // Call event handler - this.props.onStart(e, createUIEvent(this)); // Add event handlers addEvent(window, dragEventFor['move'], this.handleDrag); @@ -476,6 +602,8 @@ return /******/ (function(modules) { // webpackBootstrap return; } + removeUserSelectStyles(this); + // Turn off dragging this.setState({ dragging: false @@ -498,18 +626,24 @@ return /******/ (function(modules) { // webpackBootstrap // Snap to grid if prop has been provided if (Array.isArray(this.props.grid)) { - var coords = snapToGrid(this, clientX, clientY); + var coords = snapToGrid(this.props.grid, clientX, clientY); clientX = coords[0], clientY = coords[1]; } + if (this.props.bounds) { + var pos = getBoundPosition(this, clientX, clientY); + clientX = pos[0], clientY = pos[1]; + } + + // Call event handler. If it returns explicit false, cancel. + var shouldUpdate = this.props.onDrag(e, createUIEvent(this)); + if (shouldUpdate === false) return this.handleDragEnd(); + // Update transform this.setState({ clientX: clientX, clientY: clientY }); - - // Call event handler - this.props.onDrag(e, createUIEvent(this)); }, render: function () { @@ -532,7 +666,7 @@ return /******/ (function(modules) { // webpackBootstrap this.state.clientY : 0 }); - var style = assign({}, userSelectStyle, childStyle, transform); + var style = assign({}, childStyle, transform); // Set zIndex if currently dragging and prop has been provided if (this.state.dragging && !isNaN(this.props.zIndex)) { diff --git a/dist/react-draggable.map b/dist/react-draggable.map index 700a31f6..5290928e 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b9c0dec6f595327d3228",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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F,gBAAe;AACf,GAAE;;AAEF,GAAE;AACF,sBAAqB;AACrB,GAAE;;AAEF,OAAM,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;AACnC,GAAE,WAAW,EAAE,WAAW;;AAE1B,GAAE,SAAS,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b9c0dec6f595327d3228\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction snapToGrid(draggable, clientX, clientY) {\n var stateX = parseInt(draggable.state.clientX, 10);\n var stateY = parseInt(draggable.state.clientY, 10);\n var directionX = clientX < stateX ? -1 : 1;\n var directionY = clientY < stateY ? -1 : 1;\n\n clientX = Math.abs(clientX - stateX) >= draggable.props.grid[0] ?\n (stateX + (draggable.props.grid[0] * directionX)) :\n stateX;\n\n clientY = Math.abs(clientY - stateY) >= draggable.props.grid[1] ?\n (stateY + (draggable.props.grid[1] * directionY)) :\n stateY;\n\n return [clientX, clientY];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = {\n WebkitUserSelect: 'none',\n MozUserSelect: 'none',\n msUserSelect: 'none',\n OUserSelect: 'none',\n userSelect: 'none',\n};\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n var dragPoint = getControlPosition(e);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n // Call event handler\n this.props.onStart(e, createUIEvent(this));\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n\n // Call event handler\n this.props.onDrag(e, createUIEvent(this));\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, userSelectStyle, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 7d097448d93b4ff4e08e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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E,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,oBAAoB,EAAE,WAAW;;KAE/B,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,C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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7d097448d93b4ff4e08e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n } else {\n if (isNum(bounds.right)) bounds.right -= outerWidth(node);\n if (isNum(bounds.bottom)) bounds.bottom -= outerHeight(node);\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 5cc47e7f..ad076b4b 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){var state=draggable._pendingState||draggable.state;return{node:draggable.getDOMNode(),position:{top:state.clientY,left:state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,length=array.length;length>i;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function snapToGrid(draggable,clientX,clientY){var stateX=parseInt(draggable.state.clientX,10),stateY=parseInt(draggable.state.clientY,10),directionX=stateX>clientX?-1:1,directionY=stateY>clientY?-1:1;return clientX=Math.abs(clientX-stateX)>=draggable.props.grid[0]?stateX+draggable.props.grid[0]*directionX:stateX,clientY=Math.abs(clientY-stateY)>=draggable.props.grid[1]?stateY+draggable.props.grid[1]*directionY:stateY,[clientX,clientY]}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle={WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",OUserSelect:"none",userSelect:"none"};module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd)},getDefaultProps:function(){return{axis:"both",handle:null,cancel:null,grid:null,zIndex:0/0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,offsetX:0,offsetY:0,clientX:0,clientY:0}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var dragPoint=getControlPosition(e);this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),this.props.onStart(e,createUIEvent(this)),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}},handleDragEnd:function(e){this.state.dragging&&(this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this,clientX,clientY);clientX=coords[0],clientY=coords[1]}this.setState({clientX:clientX,clientY:clientY}),this.props.onDrag(e,createUIEvent(this))},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},userSelectStyle,childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;si;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}else isNum(bounds.right)&&(bounds.right-=outerWidth(node)),isNum(bounds.bottom)&&(bounds.bottom-=outerHeight(node));return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,offsetX:0,offsetY:0,clientX:0,clientY:0}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;s 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction snapToGrid(draggable, clientX, clientY) {\n var stateX = parseInt(draggable.state.clientX, 10);\n var stateY = parseInt(draggable.state.clientY, 10);\n var directionX = clientX < stateX ? -1 : 1;\n var directionY = clientY < stateY ? -1 : 1;\n\n clientX = Math.abs(clientX - stateX) >= draggable.props.grid[0] ?\n (stateX + (draggable.props.grid[0] * directionX)) :\n stateX;\n\n clientY = Math.abs(clientY - stateY) >= draggable.props.grid[1] ?\n (stateY + (draggable.props.grid[1] * directionY)) :\n stateY;\n\n return [clientX, clientY];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = {\n WebkitUserSelect: 'none',\n MozUserSelect: 'none',\n msUserSelect: 'none',\n OUserSelect: 'none',\n userSelect: 'none',\n};\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n var dragPoint = getControlPosition(e);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n // Call event handler\n this.props.onStart(e, createUIEvent(this));\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n\n // Call event handler\n this.props.onDrag(e, createUIEvent(this));\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, userSelectStyle, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file +{"version":3,"file":"./dist/react-draggable.js","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 7d097448d93b4ff4e08e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","createUIEvent","draggable","state","_pendingState","node","getDOMNode","position","top","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","int","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","isNum","num","isNaN","a","parseInt","getBoundPosition","bounds","JSON","parse","stringify","parent","parentNode","nodeStyle","parentStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","bottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","x","round","y","addUserSelectStyles","enableUserSelectHack","style","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","createCSSTransform","transform","WebkitTransform","OTransform","msTransform","MozTransform","React","emptyFunction","assign","classNames","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","oneOfType","shape","Number","bool","handle","string","cancel","arrayOf","number","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","NaN","getInitialState","dragging","offsetX","offsetY","handleDragStart","target","shouldStart","dragPoint","setState","Array","isArray","coords","pos","shouldUpdate","render","childStyle","children","className","react-draggable-dragging","react-draggable-dragged","dragged","cloneElement","Children","only","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","ToObject","val","TypeError","source","from","keys","to","s","arg","classes","key","hasOwnProperty","substr","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;OAChC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC7B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QAC/B,CAAC;OACF,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;;AAEA,KAAI,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7d097448d93b4ff4e08e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n } else {\n if (isNum(bounds.right)) bounds.right -= outerWidth(node);\n if (isNum(bounds.bottom)) bounds.bottom -= outerHeight(node);\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file diff --git a/package.json b/package.json index 64c8f84f..8163bab1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.5.0", + "version": "0.6.0", "description": "React draggable component", "main": "index.js", "scripts": { From ab93c8c881f2977754ec273a561f7e5a5312b129 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 7 May 2015 20:30:55 -0500 Subject: [PATCH 037/412] Change bounds to be more intuitive. --- README.md | 3 ++- example/index.html | 4 ++-- lib/draggable.js | 3 --- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 91d56e90..c08f63e2 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,8 @@ var App = React.createClass({ // `bounds` specifies movement boundaries. Pass: // - 'parent' restricts movement within the node's offsetParent // (nearest node with position relative or absolute), or - // - An object with left, top, right, and bottom properties. + // - An object with left, top, right, and bottom properties. These indicate how far in each direction + // the draggable can be moved. See example/index.html for more on this. // // `zIndex` specifies the zIndex to use while dragging. // diff --git a/example/index.html b/example/index.html index c89f2eb2..9416cdb1 100644 --- a/example/index.html +++ b/example/index.html @@ -108,8 +108,8 @@

React Draggable

I snap to a 50 x 50 grid
- -
I can only be moved within 300px bounds.
+ +
I can only be moved 100px in any direction.
diff --git a/lib/draggable.js b/lib/draggable.js index d0880348..41c934ec 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -185,9 +185,6 @@ function getBoundPosition(draggable, clientX, clientY) { right: innerWidth(parent) - outerWidth(node) - node.offsetLeft, bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop }; - } else { - if (isNum(bounds.right)) bounds.right -= outerWidth(node); - if (isNum(bounds.bottom)) bounds.bottom -= outerHeight(node); } // Keep x and y below right and bottom limits... From fb9de4b4d3803879c52be5b62e5605ff489903ca Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 7 May 2015 20:31:02 -0500 Subject: [PATCH 038/412] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ba06186..02717aef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,3 +61,9 @@ - Example updates. - Move `user-select:none` hack to document.body for better highlight prevention. - Add `bounds` option to restrict dragging within parent or within coordinates. + +### 0.7.0 (May 7, 2015) + +- Breaking change: `bounds` with coordinates was confusing because it was using the item's width/height, + which was not intuitive. When providing coordinates, `bounds` now simply restricts movement in each + direction by that many pixels. From a5d59832266eb01ceb873dcf94eaf53d3791fde0 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 7 May 2015 20:31:21 -0500 Subject: [PATCH 039/412] release v0.7.0 --- bower.json | 2 +- dist/react-draggable.js | 3 --- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 6 files changed, 5 insertions(+), 8 deletions(-) diff --git a/bower.json b/bower.json index 8f0fcb05..d4f3020f 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.6.0", + "version": "0.7.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index a87288bb..00e6c3ee 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -248,9 +248,6 @@ return /******/ (function(modules) { // webpackBootstrap right: innerWidth(parent) - outerWidth(node) - node.offsetLeft, bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop }; - } else { - if (isNum(bounds.right)) bounds.right -= outerWidth(node); - if (isNum(bounds.bottom)) bounds.bottom -= outerHeight(node); } // Keep x and y below right and bottom limits... diff --git a/dist/react-draggable.map b/dist/react-draggable.map index 5290928e..840bd1ab 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 7d097448d93b4ff4e08e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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E,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,oBAAoB,EAAE,WAAW;;KAE/B,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,C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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7d097448d93b4ff4e08e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n } else {\n if (isNum(bounds.right)) bounds.right -= outerWidth(node);\n if (isNum(bounds.bottom)) bounds.bottom -= outerHeight(node);\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap ac25421a934ddd280a56",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,oBAAoB,EAAE,WAAW;;KAE/B,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAC7D,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACjC,IAAG;;GAED,eAAe,EAAE,YAAY;KAC3B,OAAO;OACL,IAAI,EAAE,MAAM;O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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap ac25421a934ddd280a56\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index ad076b4b..bb1f0d25 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){var state=draggable._pendingState||draggable.state;return{node:draggable.getDOMNode(),position:{top:state.clientY,left:state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,length=array.length;length>i;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}else isNum(bounds.right)&&(bounds.right-=outerWidth(node)),isNum(bounds.bottom)&&(bounds.bottom-=outerHeight(node));return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,offsetX:0,offsetY:0,clientX:0,clientY:0}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;si;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,offsetX:0,offsetY:0,clientX:0,clientY:0}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;s 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n } else {\n if (isNum(bounds.right)) bounds.right -= outerWidth(node);\n if (isNum(bounds.bottom)) bounds.bottom -= outerHeight(node);\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file +{"version":3,"file":"./dist/react-draggable.js","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap ac25421a934ddd280a56",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","createUIEvent","draggable","state","_pendingState","node","getDOMNode","position","top","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","int","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","isNum","num","isNaN","a","parseInt","getBoundPosition","bounds","JSON","parse","stringify","parent","parentNode","nodeStyle","parentStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","bottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","x","round","y","addUserSelectStyles","enableUserSelectHack","style","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","createCSSTransform","transform","WebkitTransform","OTransform","msTransform","MozTransform","React","emptyFunction","assign","classNames","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","oneOfType","shape","Number","bool","handle","string","cancel","arrayOf","number","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","NaN","getInitialState","dragging","offsetX","offsetY","handleDragStart","target","shouldStart","dragPoint","setState","Array","isArray","coords","pos","shouldUpdate","render","childStyle","children","className","react-draggable-dragging","react-draggable-dragged","dragged","cloneElement","Children","only","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","ToObject","val","TypeError","source","from","keys","to","s","arg","classes","key","hasOwnProperty","substr","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined"],"mappings":"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M;SAC7B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QAC/B,CAAC;OACF,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;;AAEA,KAAI,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap ac25421a934ddd280a56\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file diff --git a/package.json b/package.json index 8163bab1..fbd77c73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.6.0", + "version": "0.7.0", "description": "React draggable component", "main": "index.js", "scripts": { From e8fc9e59627dabf493ac46ec596345c2316ae325 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 7 May 2015 21:00:20 -0500 Subject: [PATCH 040/412] The `start` param is back. Fixes #52 --- README.md | 4 ++++ example/index.html | 5 +++++ lib/draggable.js | 25 ++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c08f63e2..f857cec4 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,10 @@ var App = React.createClass({ // - An object with left, top, right, and bottom properties. These indicate how far in each direction // the draggable can be moved. See example/index.html for more on this. // + // `start` specifies the x and y that the dragged item should start at. This is generally not necessary + // to use (you can use absolute or relative positioning of the child directly), but can be helpful + // for uniformity in your callbacks and with css transforms. + // // `zIndex` specifies the zIndex to use while dragging. // // `onStart` is called when dragging starts. diff --git a/example/index.html b/example/index.html index 9416cdb1..6a656b82 100644 --- a/example/index.html +++ b/example/index.html @@ -130,6 +130,11 @@

React Draggable

I already have an absolute position.
+ +
+ {"I have a start position of {x: 25, y: 25}, so I'm slightly offset."} +
+
); } diff --git a/lib/draggable.js b/lib/draggable.js index 41c934ec..5503886b 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -364,6 +364,28 @@ module.exports = React.createClass({ */ grid: React.PropTypes.arrayOf(React.PropTypes.number), + /** + * `start` specifies the x and y that the dragged item should start at + * + * Example: + * + * ```jsx + * var App = React.createClass({ + * render: function () { + * return ( + * + *
I start with transformX: 25px and transformY: 25px;
+ *
+ * ); + * } + * }); + * ``` + */ + start: React.PropTypes.shape({ + x: React.PropTypes.number, + y: React.PropTypes.number + }), + /** * `zIndex` specifies the zIndex to use while dragging. * @@ -466,6 +488,7 @@ module.exports = React.createClass({ handle: null, cancel: null, grid: null, + start: {x: 0, y: 0}, zIndex: NaN, enableUserSelectHack: true, onStart: emptyFunction, @@ -484,7 +507,7 @@ module.exports = React.createClass({ offsetX: 0, offsetY: 0, // Current transform x and y. - clientX: 0, clientY: 0 + clientX: this.props.start.x, clientY: this.props.start.y }; }, From 2d3f0e7d0d53341765bf98be2a40e8fff051926d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 7 May 2015 21:01:23 -0500 Subject: [PATCH 041/412] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02717aef..ec934cf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,3 +67,9 @@ - Breaking change: `bounds` with coordinates was confusing because it was using the item's width/height, which was not intuitive. When providing coordinates, `bounds` now simply restricts movement in each direction by that many pixels. + +### 0.7.1 (May 7, 2015) + +- The `start` param is back. Pass `{x: Number, y: Number}` to kickoff the CSS transform. Useful in certain + cases for simpler callback math (so you don't have to know its existing relative position and add it to + the dragged position). Fixes #52. From 30a8f5eb6cce22a466797cd7dabd36031d7f021a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 7 May 2015 21:01:37 -0500 Subject: [PATCH 042/412] release v0.7.1 --- bower.json | 2 +- dist/react-draggable.js | 25 ++++++++++++++++++++++++- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 6 files changed, 29 insertions(+), 6 deletions(-) diff --git a/bower.json b/bower.json index d4f3020f..c5e6074a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.0", + "version": "0.7.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 00e6c3ee..81d84f44 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -427,6 +427,28 @@ return /******/ (function(modules) { // webpackBootstrap */ grid: React.PropTypes.arrayOf(React.PropTypes.number), + /** + * `start` specifies the x and y that the dragged item should start at + * + * Example: + * + * ```jsx + * var App = React.createClass({ + * render: function () { + * return ( + * + *
I start with transformX: 25px and transformY: 25px;
+ *
+ * ); + * } + * }); + * ``` + */ + start: React.PropTypes.shape({ + x: React.PropTypes.number, + y: React.PropTypes.number + }), + /** * `zIndex` specifies the zIndex to use while dragging. * @@ -529,6 +551,7 @@ return /******/ (function(modules) { // webpackBootstrap handle: null, cancel: null, grid: null, + start: {x: 0, y: 0}, zIndex: NaN, enableUserSelectHack: true, onStart: emptyFunction, @@ -547,7 +570,7 @@ return /******/ (function(modules) { // webpackBootstrap offsetX: 0, offsetY: 0, // Current transform x and y. - clientX: 0, clientY: 0 + clientX: this.props.start.x, clientY: this.props.start.y }; }, diff --git a/dist/react-draggable.map b/dist/react-draggable.map index 840bd1ab..68ec709a 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap ac25421a934ddd280a56",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,oBAAoB,EAAE,WAAW;;KAE/B,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAC7D,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACjC,IAAG;;GAED,eAAe,EAAE,YAAY;KAC3B,OAAO;OACL,IAAI,EAAE,MAAM;O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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap ac25421a934ddd280a56\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 0afb6bd4064b5ca6732d",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,oBAAoB,EAAE,WAAW;;KAE/B,WAAW,CAAC,MAAM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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 0afb6bd4064b5ca6732d\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: this.props.start.x, clientY: this.props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index bb1f0d25..76124482 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){var state=draggable._pendingState||draggable.state;return{node:draggable.getDOMNode(),position:{top:state.clientY,left:state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,length=array.length;length>i;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,offsetX:0,offsetY:0,clientX:0,clientY:0}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;si;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;s 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: 0, clientY: 0\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file +{"version":3,"file":"./dist/react-draggable.js","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 0afb6bd4064b5ca6732d",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","createUIEvent","draggable","state","_pendingState","node","getDOMNode","position","top","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","int","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","isNum","num","isNaN","a","parseInt","getBoundPosition","bounds","JSON","parse","stringify","parent","parentNode","nodeStyle","parentStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","bottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","x","round","y","addUserSelectStyles","enableUserSelectHack","style","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","createCSSTransform","transform","WebkitTransform","OTransform","msTransform","MozTransform","React","emptyFunction","assign","classNames","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","oneOfType","shape","Number","bool","handle","string","cancel","arrayOf","number","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","NaN","getInitialState","dragging","offsetX","offsetY","handleDragStart","target","shouldStart","dragPoint","setState","Array","isArray","coords","pos","shouldUpdate","render","childStyle","children","className","react-draggable-dragging","react-draggable-dragged","dragged","cloneElement","Children","only","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","ToObject","val","TypeError","source","from","keys","to","s","arg","classes","key","hasOwnProperty","substr","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 0afb6bd4064b5ca6732d\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: this.props.start.x, clientY: this.props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file diff --git a/package.json b/package.json index fbd77c73..53ed6854 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.0", + "version": "0.7.1", "description": "React draggable component", "main": "index.js", "scripts": { From 370adbc3ca89658ca7e29c06cb68432b99c8caa6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 8 May 2015 08:10:49 -0500 Subject: [PATCH 043/412] Add `moveOnStartChange` prop --- README.md | 5 +++++ lib/draggable.js | 24 ++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f857cec4..725773df 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,9 @@ var App = React.createClass({ // to use (you can use absolute or relative positioning of the child directly), but can be helpful // for uniformity in your callbacks and with css transforms. // + // `moveOnStartChange`, if true (default false), will move the element if there is a change in `start`. + // We set this by default to `false` because it can cause unwanted effects if you are not aware of it. + // // `zIndex` specifies the zIndex to use while dragging. // // `onStart` is called when dragging starts. @@ -95,6 +98,8 @@ var App = React.createClass({ Date: Fri, 8 May 2015 08:11:21 -0500 Subject: [PATCH 044/412] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec934cf0..5d5c49c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -73,3 +73,7 @@ - The `start` param is back. Pass `{x: Number, y: Number}` to kickoff the CSS transform. Useful in certain cases for simpler callback math (so you don't have to know its existing relative position and add it to the dragged position). Fixes #52. + +### 0.7.2 (May 8, 2015) + +- Added `moveOnStartChange` property. See README. From 0b9902f30189cc4f12f5469dd1160f208a9cc02d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 8 May 2015 08:11:33 -0500 Subject: [PATCH 045/412] release v0.7.2 --- bower.json | 2 +- dist/react-draggable.js | 92 ++++++++++++++++++++++-------------- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 6 files changed, 61 insertions(+), 41 deletions(-) diff --git a/bower.json b/bower.json index c5e6074a..df28f7a8 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.1", + "version": "0.7.2", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 81d84f44..2b7e1a82 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -65,8 +65,8 @@ return /******/ (function(modules) { // webpackBootstrap var React = __webpack_require__(2); var emptyFunction = function(){}; - var assign = __webpack_require__(3); - var classNames = __webpack_require__(4); + var assign = __webpack_require__(4); + var classNames = __webpack_require__(3); // // Helpers. See Element definition below this section. @@ -449,6 +449,13 @@ return /******/ (function(modules) { // webpackBootstrap y: React.PropTypes.number }), + /** + * `moveOnStartChange`, if true (default false) will move the element if the `start` + * property changes. + */ + moveOnStartChange: React.PropTypes.bool, + + /** * `zIndex` specifies the zIndex to use while dragging. * @@ -537,6 +544,14 @@ return /******/ (function(modules) { // webpackBootstrap onMouseDown: React.PropTypes.func, }, + componentWillReceiveProps: function(newProps) { + // React to changes in the 'start' param. + if (newProps.moveOnStartChange && newProps.start && + (newProps.start.x !== this.state.initialStart.x || newProps.start.y !== this.state.initialStart.y)) { + this.setState(this.getInitialState(newProps)); + } + }, + componentWillUnmount: function() { // Remove any leftover event handlers removeEvent(window, dragEventFor['move'], this.handleDrag); @@ -551,6 +566,7 @@ return /******/ (function(modules) { // webpackBootstrap handle: null, cancel: null, grid: null, + moveOnStartChange: false, start: {x: 0, y: 0}, zIndex: NaN, enableUserSelectHack: true, @@ -561,7 +577,9 @@ return /******/ (function(modules) { // webpackBootstrap }; }, - getInitialState: function () { + getInitialState: function (props) { + // Handle call from CWRP + props = props || this.props; return { // Whether or not we are currently dragging. dragging: false, @@ -570,7 +588,9 @@ return /******/ (function(modules) { // webpackBootstrap offsetX: 0, offsetY: 0, // Current transform x and y. - clientX: this.props.start.x, clientY: this.props.start.y + clientX: props.start.x, clientY: props.start.y, + + initialStart: props.start }; }, @@ -725,38 +745,6 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 3 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - function ToObject(val) { - if (val == null) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); - } - - module.exports = Object.assign || function (target, source) { - var from; - var keys; - var to = ToObject(target); - - for (var s = 1; s < arguments.length; s++) { - from = arguments[s]; - keys = Object.keys(Object(from)); - - for (var i = 0; i < keys.length; i++) { - to[keys[i]] = from[keys[i]]; - } - } - - return to; - }; - - -/***/ }, -/* 4 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -804,6 +792,38 @@ return /******/ (function(modules) { // webpackBootstrap } +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + function ToObject(val) { + if (val == null) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); + } + + module.exports = Object.assign || function (target, source) { + var from; + var keys; + var to = ToObject(target); + + for (var s = 1; s < arguments.length; s++) { + from = arguments[s]; + keys = Object.keys(Object(from)); + + for (var i = 0; i < keys.length; i++) { + to[keys[i]] = from[keys[i]]; + } + } + + return to; + }; + + /***/ } /******/ ]) }); diff --git a/dist/react-draggable.map b/dist/react-draggable.map index 68ec709a..ee4ef67c 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 0afb6bd4064b5ca6732d",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,OAAM,CAAC,OAAO,GAAG,mBAAO,CAAC,CAAiB,CAAC,CAAC;;;;;;;ACA5C,aAAY,CAAC;;AAEb,KAAI,KAAK,GAAG,mBAAO,CAAC,CAAO,CAAC,CAAC;AAC7B,KAAI,aAAa,GAAG,UAAU,EAAE,CAAC;AACjC,KAAI,MAAM,GAAG,mBAAO,CAAC,CAAe,CAAC,CAAC;AACtC,KAAI,UAAU,GAAG,mBAAO,CAAC,CAAY,CAAC,CAAC;;AAEvC,GAAE;AACF,uDAAsD;AACtD,GAAE;;AAEF,UAAS,aAAa,CAAC,SAAS,EAAE;;GAEhC,IAAI,KAAK,GAAG,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,KAAK,CAAC;GACvD,OAAO;KACL,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE;KAC5B,QAAQ,EAAE;OACR,GAAG,EAAE,KAAK,CAAC,OAAO;OAClB,IAAI,EAAE,KAAK,CAAC,OAAO;MACpB;IACF,CAAC;AACJ,EAAC;;AAED,UAAS,QAAQ,CAAC,SAAS,EAAE;GAC3B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;OAClC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AACnC,EAAC;;AAED,UAAS,QAAQ,CAAC,SAAS,EAAE;GAC3B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;OAClC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AACnC,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE;GACxB,OAAO,OAAO,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,mBAAmB,CAAC;AACpG,EAAC;;AAED,sEAAqE;AACrE,UAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE;GACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;KACtD,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACrE;AACH,EAAC;;AAED,UAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE;GACrC,IAAI,MAAM,GAAG,WAAW,CAAC;KACvB,SAAS;KACT,uBAAuB;KACvB,oBAAoB;KACpB,mBAAmB;KACnB,kBAAkB;IACnB,EAAE,SAAS,MAAM,CAAC;KACjB,OAAO,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,IAAG,CAAC,CAAC;;GAEH,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACvC,EAAC;;AAED,4IAA2I;AAC3I,iEAAgE;AAChE,KAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;KAE/B,IAAI,aAAa,GAAG,KAAK,CAAC;AAC9B,EAAC,MAAM;;KAEH,IAAI,aAAa,GAAG,cAAc,IAAI,MAAM;AAChD,yBAAwB,mBAAmB,IAAI,MAAM,CAAC;;AAEtD,EAAC;;AAED,0BAAyB;AACzB,6BAA4B;AAC5B,yEAAwE;AACxE,IAAG;;AAEH;;MAEK;AACL,KAAI,YAAY,GAAG,CAAC,YAAY;GAC9B,IAAI,SAAS,GAAG;KACd,KAAK,EAAE;OACL,KAAK,EAAE,YAAY;OACnB,IAAI,EAAE,WAAW;OACjB,GAAG,EAAE,UAAU;MAChB;KACD,KAAK,EAAE;OACL,KAAK,EAAE,WAAW;OAClB,IAAI,EAAE,WAAW;OACjB,GAAG,EAAE,SAAS;MACf;IACF,CAAC;GACF,OAAO,SAAS,CAAC,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AACtD,EAAC,GAAG,CAAC;;AAEL;;MAEK;AACL,UAAS,kBAAkB,CAAC,CAAC,EAAE;GAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GAChD,OAAO;KACL,OAAO,EAAE,QAAQ,CAAC,OAAO;KACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;IAC1B,CAAC;AACJ,EAAC;;AAED,UAAS,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;GACpC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;GACpB,IAAI,EAAE,CAAC,WAAW,EAAE;KAClB,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,EAAE,CAAC,gBAAgB,EAAE;KAC9B,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM;KACL,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;IAC5B;AACH,EAAC;;AAED,UAAS,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;GACvC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;GACpB,IAAI,EAAE,CAAC,WAAW,EAAE;KAClB,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,EAAE,CAAC,mBAAmB,EAAE;KACjC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM;KACL,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IACzB;AACH,EAAC;;AAED,UAAS,WAAW,CAAC,IAAI,EAAE;AAC3B;;GAEE,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;GAC/B,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;GAClD,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;GAC5C,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;GAC/C,OAAO,MAAM,CAAC;AAChB,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE;AAC1B;;GAEE,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;GAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;GAClD,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;GAC5C,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;GAC7C,OAAO,KAAK,CAAC;EACd;AACD,UAAS,WAAW,CAAC,IAAI,EAAE;GACzB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;GAC/B,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;GAClD,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;GACxC,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;GAC3C,OAAO,MAAM,CAAC;AAChB,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE;GACxB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;GAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;GAClD,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;GACxC,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;GACzC,OAAO,KAAK,CAAC;AACf,EAAC;;AAED,UAAS,KAAK,CAAC,GAAG,EAAE;GAClB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,EAAC;;AAED,UAAS,GAAG,CAAC,CAAC,EAAE;GACd,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzB,EAAC;;AAED,UAAS,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;GACrD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;GAChE,IAAI,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;AACpC,GAAE,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;;GAE7B,IAAI,MAAM,KAAK,QAAQ,EAAE;KACvB,IAAI,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAClD,KAAI,IAAI,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;KAElD,MAAM,GAAG;OACP,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC;aAC/C,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC;OAChE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC;aAC5C,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;OAC9D,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU;OAC9D,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS;MACjE,CAAC;AACN,IAAG;AACH;;GAEE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACrE,GAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACvE;;GAEE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACnE,GAAE,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;GAE/D,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5B,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;GAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;GACjD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;GACjD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChB,EAAC;;AAED,4EAA2E;AAC3E,KAAI,eAAe,GAAG,oEAAoE;AAC1F,GAAE,2CAA2C,CAAC;;AAE9C,UAAS,mBAAmB,CAAC,SAAS,EAAE;GACtC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO;GAClD,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;GACtD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC;AAC/D,EAAC;;AAED,UAAS,sBAAsB,CAAC,SAAS,EAAE;GACzC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO;GAClD,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;GACtD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1E,EAAC;;AAED,UAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,GAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;;GAEpC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;GACvB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;GACvB,OAAO;KACL,SAAS,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;KAC3C,eAAe,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;KACjD,UAAU,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;KAC5C,WAAW,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;KAC7C,YAAY,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;IAC/C,CAAC;AACJ,EAAC;AACD;;AAEA,GAAE;AACF,gBAAe;AACf,GAAE;;AAEF,GAAE;AACF,sBAAqB;AACrB,GAAE;;AAEF,OAAM,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;AACnC,GAAE,WAAW,EAAE,WAAW;;AAE1B,GAAE,SAAS,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;OAChC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC7B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QAC/B,CAAC;OACF,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;;AAEA,KAAI,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,oBAAoB,EAAE,WAAW;;KAE/B,WAAW,CAAC,MAAM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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 0afb6bd4064b5ca6732d\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: this.props.start.x, clientY: this.props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 99750173952ea98a2bfe",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/classnames/index.js",".././~/object-assign/index.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;;AAEA,KAAI,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,S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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 99750173952ea98a2bfe\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start &&\n (newProps.start.x !== this.state.initialStart.x || newProps.start.y !== this.state.initialStart.y)) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y,\n\n initialStart: props.start\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 76124482..01183362 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){var state=draggable._pendingState||draggable.state;return{node:draggable.getDOMNode(),position:{top:state.clientY,left:state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,length=array.length;length>i;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(){return{dragging:!1,offsetX:0,offsetY:0,clientX:this.props.start.x,clientY:this.props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;si;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(4),classNames=__webpack_require__(3);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&(newProps.start.x!==this.state.initialStart.x||newProps.start.y!==this.state.initialStart.y)&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y,initialStart:props.start}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){function classNames(){for(var arg,classes="",i=0;i 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function () {\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: this.props.start.x, clientY: this.props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file +{"version":3,"file":"./dist/react-draggable.js","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 99750173952ea98a2bfe",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/classnames/index.js",".././~/object-assign/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","createUIEvent","draggable","state","_pendingState","node","getDOMNode","position","top","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","int","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","isNum","num","isNaN","a","parseInt","getBoundPosition","bounds","JSON","parse","stringify","parent","parentNode","nodeStyle","parentStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","bottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","x","round","y","addUserSelectStyles","enableUserSelectHack","style","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","createCSSTransform","transform","WebkitTransform","OTransform","msTransform","MozTransform","React","emptyFunction","assign","classNames","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","oneOfType","shape","Number","bool","handle","string","cancel","arrayOf","number","moveOnStartChange","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillReceiveProps","newProps","initialStart","setState","getInitialState","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","NaN","dragging","offsetX","offsetY","handleDragStart","target","shouldStart","dragPoint","Array","isArray","coords","pos","shouldUpdate","render","childStyle","children","className","react-draggable-dragging","react-draggable-dragged","dragged","cloneElement","Children","only","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","arg","classes","key","hasOwnProperty","substr","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined","ToObject","val","TypeError","source","from","keys","to","s"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 99750173952ea98a2bfe\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start &&\n (newProps.start.x !== this.state.initialStart.x || newProps.start.y !== this.state.initialStart.y)) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y,\n\n initialStart: props.start\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/"]} \ No newline at end of file diff --git a/package.json b/package.json index 53ed6854..14dd1653 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.1", + "version": "0.7.2", "description": "React draggable component", "main": "index.js", "scripts": { From 757e44469298fc1274ea3fe06d8c63b2a6aadbe3 Mon Sep 17 00:00:00 2001 From: Mark Thomas Date: Tue, 12 May 2015 20:39:47 -0700 Subject: [PATCH 046/412] Move brief API documentation out of example Really love this component and thought it might be helpful for other people if the props for a `` were more clearly documented. I don't usually look in code examples for documentation about a given API and it might help people clearly see how to clearly use the module while still including an easy-to-get usage. Open to thoughts / feedback / &c.! --- README.md | 78 +++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 725773df..6921eecb 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,41 @@ positioning (relative, absolute, or static). Elements can also be moved between If the item you are dragging already has a CSS Transform applied, it will be overwritten by ``. Use an intermediate wrapper (`...`) in this case. -## Example +## API +The `` component transparently adds draggable to whatever element is supplied as `this.props.children`. +**Note**: Only a single element is allowed or an Error will be thrown. + +Props: + +**`axis`**: determines which axis the draggable can move. Accepted values: +- `both` allows movement horizontally and vertically (default). +- `x` limits movement to horizontal axis. +- `y` limits movement to vertical axis. + +**`handle`**: specifies a selector to be used as the handle that initiates drag. + +**`cancel`**: specifies a selector to be used to prevent drag initialization. + +**`grid`**: specifies the x and y that dragging should snap to. + +**`bounds`**: specifies movement boundaries. Accepted values: +- `parent` restricts movement within the node's offsetParent (nearest node with position relative or absolute), or +- An object with `left, top, right, and bottom` properties. These indicate how far in each direction the draggable can be moved. See [example/index.html](https://github.com/mzabriskie/react-draggable/blob/master/example/index.html) for more on this. + +**`start`**: specifies the `x` and `y` that the dragged item should start at. This is generally not necessary to use (you can use absolute or relative positioning of the child directly), but can be helpful for uniformity in your callbacks and with css transforms. + +**`moveOnStartChange`**: if true (it defaults false), will move the element if there is a change in `start`. We set this by default to `false` because it can cause unwanted effects if you are not aware of it. + +**`zIndex`**: specifies the zIndex to use while dragging. + +**`onStart`**: called when dragging starts. + +**`onDrag`**: called while dragging. + +**`onStop`**: called when dragging stops. + + +## Example usage ```js /** @jsx React.DOM */ @@ -57,44 +91,6 @@ var App = React.createClass({ render: function () { return ( - // transparently adds draggable interactivity - // to whatever element is supplied as `this.props.children`. - // Only a single element is allowed or an Error will be thrown. - // - // The element is moved from its current position using absolute positioning. - // - // `axis` determines which axis the draggable can move. - // - 'both' allows movement horizontally and vertically (default). - // - 'x' limits movement to horizontal axis. - // - 'y' limits movement to vertical axis. - // - // `handle` specifies a selector to be used as the handle that initiates drag. - // - // `cancel` specifies a selector to be used to prevent drag initialization. - // - // `grid` specifies the x and y that dragging should snap to. - // - // `bounds` specifies movement boundaries. Pass: - // - 'parent' restricts movement within the node's offsetParent - // (nearest node with position relative or absolute), or - // - An object with left, top, right, and bottom properties. These indicate how far in each direction - // the draggable can be moved. See example/index.html for more on this. - // - // `start` specifies the x and y that the dragged item should start at. This is generally not necessary - // to use (you can use absolute or relative positioning of the child directly), but can be helpful - // for uniformity in your callbacks and with css transforms. - // - // `moveOnStartChange`, if true (default false), will move the element if there is a change in `start`. - // We set this by default to `false` because it can cause unwanted effects if you are not aware of it. - // - // `zIndex` specifies the zIndex to use while dragging. - // - // `onStart` is called when dragging starts. - // - // `onDrag` is called while dragging. - // - // `onStop` is called when dragging stops. -
Drag from here
-
Lorem ipsum...
+
This readme is really dragging on...
); @@ -117,6 +113,8 @@ var App = React.createClass({ React.renderComponent(, document.body); ``` + + ## Contributing - Fork the project From dbe30f5dda870ce6eca97e4538fea83347cd97dc Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 13 May 2015 11:22:17 -0500 Subject: [PATCH 047/412] Remove `initialStart` state. Causes problems when you intend to move an item back to its starting position and doesn't actually accomplish its intended optimization goal. --- lib/draggable.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index a50b0999..27faeae4 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -483,8 +483,7 @@ module.exports = React.createClass({ componentWillReceiveProps: function(newProps) { // React to changes in the 'start' param. - if (newProps.moveOnStartChange && newProps.start && - (newProps.start.x !== this.state.initialStart.x || newProps.start.y !== this.state.initialStart.y)) { + if (newProps.moveOnStartChange && newProps.start) { this.setState(this.getInitialState(newProps)); } }, @@ -525,9 +524,7 @@ module.exports = React.createClass({ offsetX: 0, offsetY: 0, // Current transform x and y. - clientX: props.start.x, clientY: props.start.y, - - initialStart: props.start + clientX: props.start.x, clientY: props.start.y }; }, From 23c8e2cad4cd04a0e17b6387829db421446022f1 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 13 May 2015 11:22:59 -0500 Subject: [PATCH 048/412] release v0.7.3 --- CHANGELOG.md | 5 +++ bower.json | 2 +- dist/react-draggable.js | 75 +++++++++++++++++------------------- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 7 files changed, 46 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d5c49c1..754e5389 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -77,3 +77,8 @@ ### 0.7.2 (May 8, 2015) - Added `moveOnStartChange` property. See README. + +### 0.7.3 (May 13, 2015) + +- Removed a `moveOnStartChange` optimization that was causing problems when attempting to move a `` back + to its initial position. See https://github.com/STRML/react-grid-layout/issues/56 diff --git a/bower.json b/bower.json index df28f7a8..d9666f92 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.2", + "version": "0.7.3", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 2b7e1a82..ddc7b473 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -65,8 +65,8 @@ return /******/ (function(modules) { // webpackBootstrap var React = __webpack_require__(2); var emptyFunction = function(){}; - var assign = __webpack_require__(4); - var classNames = __webpack_require__(3); + var assign = __webpack_require__(3); + var classNames = __webpack_require__(4); // // Helpers. See Element definition below this section. @@ -546,8 +546,7 @@ return /******/ (function(modules) { // webpackBootstrap componentWillReceiveProps: function(newProps) { // React to changes in the 'start' param. - if (newProps.moveOnStartChange && newProps.start && - (newProps.start.x !== this.state.initialStart.x || newProps.start.y !== this.state.initialStart.y)) { + if (newProps.moveOnStartChange && newProps.start) { this.setState(this.getInitialState(newProps)); } }, @@ -588,9 +587,7 @@ return /******/ (function(modules) { // webpackBootstrap offsetX: 0, offsetY: 0, // Current transform x and y. - clientX: props.start.x, clientY: props.start.y, - - initialStart: props.start + clientX: props.start.x, clientY: props.start.y }; }, @@ -745,6 +742,38 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 3 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + function ToObject(val) { + if (val == null) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); + } + + module.exports = Object.assign || function (target, source) { + var from; + var keys; + var to = ToObject(target); + + for (var s = 1; s < arguments.length; s++) { + from = arguments[s]; + keys = Object.keys(Object(from)); + + for (var i = 0; i < keys.length; i++) { + to[keys[i]] = from[keys[i]]; + } + } + + return to; + }; + + +/***/ }, +/* 4 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -792,38 +821,6 @@ return /******/ (function(modules) { // webpackBootstrap } -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - function ToObject(val) { - if (val == null) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); - } - - module.exports = Object.assign || function (target, source) { - var from; - var keys; - var to = ToObject(target); - - for (var s = 1; s < arguments.length; s++) { - from = arguments[s]; - keys = Object.keys(Object(from)); - - for (var i = 0; i < keys.length; i++) { - to[keys[i]] = from[keys[i]]; - } - } - - return to; - }; - - /***/ } /******/ ]) }); diff --git a/dist/react-draggable.map b/dist/react-draggable.map index ee4ef67c..ffa4452d 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 99750173952ea98a2bfe",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/classnames/index.js",".././~/object-assign/index.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;;AAEA,KAAI,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,S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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 99750173952ea98a2bfe\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start &&\n (newProps.start.x !== this.state.initialStart.x || newProps.start.y !== this.state.initialStart.y)) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y,\n\n initialStart: props.start\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap fdff67a4988124e7419e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;;AAEA,KAAI,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,S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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap fdff67a4988124e7419e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 01183362..dd501271 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){var state=draggable._pendingState||draggable.state;return{node:draggable.getDOMNode(),position:{top:state.clientY,left:state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,length=array.length;length>i;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(4),classNames=__webpack_require__(3);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&(newProps.start.x!==this.state.initialStart.x||newProps.start.y!==this.state.initialStart.y)&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y,initialStart:props.start}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){function classNames(){for(var arg,classes="",i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;s 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start &&\n (newProps.start.x !== this.state.initialStart.x || newProps.start.y !== this.state.initialStart.y)) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y,\n\n initialStart: props.start\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/"]} \ No newline at end of file +{"version":3,"file":"./dist/react-draggable.js","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap fdff67a4988124e7419e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","createUIEvent","draggable","state","_pendingState","node","getDOMNode","position","top","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","int","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","isNum","num","isNaN","a","parseInt","getBoundPosition","bounds","JSON","parse","stringify","parent","parentNode","nodeStyle","parentStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","bottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","x","round","y","addUserSelectStyles","enableUserSelectHack","style","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","createCSSTransform","transform","WebkitTransform","OTransform","msTransform","MozTransform","React","emptyFunction","assign","classNames","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","oneOfType","shape","Number","bool","handle","string","cancel","arrayOf","number","moveOnStartChange","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillReceiveProps","newProps","setState","getInitialState","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","NaN","dragging","offsetX","offsetY","handleDragStart","target","shouldStart","dragPoint","Array","isArray","coords","pos","shouldUpdate","render","childStyle","children","className","react-draggable-dragging","react-draggable-dragged","dragged","cloneElement","Children","only","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","ToObject","val","TypeError","source","from","keys","to","s","arg","classes","key","hasOwnProperty","substr","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap fdff67a4988124e7419e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file diff --git a/package.json b/package.json index 14dd1653..3ccf279f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.2", + "version": "0.7.3", "description": "React draggable component", "main": "index.js", "scripts": { From 14860b363f52db5c97e5ac9b21bc80667bf251f6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 18 May 2015 09:59:48 -0500 Subject: [PATCH 049/412] Fix #55. --- dist/react-draggable.js | 3 +-- lib/draggable.js | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/dist/react-draggable.js b/dist/react-draggable.js index ddc7b473..7f3662b9 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -284,7 +284,6 @@ return /******/ (function(modules) { // webpackBootstrap } function createCSSTransform(style) { - if (!style.x && !style.y) return {}; // Replace unitless items with px var x = style.x + 'px'; var y = style.y + 'px'; @@ -825,4 +824,4 @@ return /******/ (function(modules) { // webpackBootstrap /******/ ]) }); ; -//# sourceMappingURL=react-draggable.map \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIi4uL3dlYnBhY2svYm9vdHN0cmFwIDhkZDM1MDdkMGYwNTlkNjUwMTJiIiwiLi4vLi9pbmRleC5qcyIsIi4uLy4vbGliL2RyYWdnYWJsZS5qcyIsIi4uL2V4dGVybmFsIFwiUmVhY3RcIiIsIi4uLy4vfi9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwiLi4vLi9+L2NsYXNzbmFtZXMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDdENBLE9BQU0sQ0FBQyxPQUFPLEdBQUcsbUJBQU8sQ0FBQyxDQUFpQixDQUFDLENBQUM7Ozs7Ozs7QUNBNUMsYUFBWSxDQUFDOztBQUViLEtBQUksS0FBSyxHQUFHLG1CQUFPLENBQUMsQ0FBTyxDQUFDLENBQUM7QUFDN0IsS0FBSSxhQUFhLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDakMsS0FBSSxNQUFNLEdBQUcsbUJBQU8sQ0FBQyxDQUFlLENBQUMsQ0FBQztBQUN0QyxLQUFJLFVBQVUsR0FBRyxtQkFBTyxDQUFDLENBQVksQ0FBQyxDQUFDOztBQUV2QyxHQUFFO0FBQ0YsdURBQXNEO0FBQ3RELEdBQUU7O0FBRUYsVUFBUyxhQUFhLENBQUMsU0FBUyxFQUFFOztHQUVoQyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7R0FDdkQsT0FBTztLQUNMLElBQUksRUFBRSxTQUFTLENBQUMsVUFB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SyxDQUFDLFNBQVMsQ0FBQyxNQUFNO1NBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU07U0FDN0IsR0FBRyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTTtTQUMzQixNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNO1FBQy9CLENBQUM7T0FDRixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5QyxNQUFLLENBQUM7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBQUksb0JBQW9CLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSSxNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSSxNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7S0FFSSxLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENB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eUM7QUFDekMsS0FBSSxJQUEyQyxFQUFFO0VBQ2hELGlDQUFxQixFQUFFLGtDQUFFLFdBQVc7R0FDbkMsT0FBTyxVQUFVLENBQUM7R0FDbEIsK0lBQUMsQ0FBQztFQUNIIiwiZmlsZSI6Ii4vZGlzdC9yZWFjdC1kcmFnZ2FibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJSZWFjdFwiKSk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXCJSZWFjdFwiXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJSZWFjdERyYWdnYWJsZVwiXSA9IGZhY3RvcnkocmVxdWlyZShcIlJlYWN0XCIpKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJSZWFjdERyYWdnYWJsZVwiXSA9IGZhY3Rvcnkocm9vdFtcIlJlYWN0XCJdKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fKSB7XG5yZXR1cm4gXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uXG4gKiovIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGV4cG9ydHM6IHt9LFxuIFx0XHRcdGlkOiBtb2R1bGVJZCxcbiBcdFx0XHRsb2FkZWQ6IGZhbHNlXG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrL2Jvb3RzdHJhcCA4ZGQzNTA3ZDBmMDU5ZDY1MDEyYlxuICoqLyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvZHJhZ2dhYmxlJyk7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuL2luZGV4LmpzXG4gKiovIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIGVtcHR5RnVuY3Rpb24gPSBmdW5jdGlvbigpe307XG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xudmFyIGNsYXNzTmFtZXMgPSByZXF1aXJlKCdjbGFzc25hbWVzJyk7XG5cbi8vXG4vLyBIZWxwZXJzLiBTZWUgRWxlbWVudCBkZWZpbml0aW9uIGJlbG93IHRoaXMgc2VjdGlvbi5cbi8vXG5cbmZ1bmN0aW9uIGNyZWF0ZVVJRXZlbnQoZHJhZ2dhYmxlKSB7XG4gIC8vIFN0YXRlIGNoYW5nZXMgYXJlIG9mdGVuIChidXQgbm90IGFsd2F5cyEpIGFzeW5jLiBXZSB3YW50IHRoZSBsYXRlc3QgdmFsdWUuXG4gIHZhciBzdGF0ZSA9IGRyYWdnYWJsZS5fcGVuZGluZ1N0YXRlIHx8IGRyYWdnYWJsZS5zdGF0ZTtcbiAgcmV0dXJuIHtcbiAgICBub2RlOiBkcmFnZ2FibGUuZ2V0RE9NTm9kZSgpLFxuICAgIHBvc2l0aW9uOiB7XG4gICAgICB0b3A6IHN0YXRlLmNsaWVudFksXG4gICAgICBsZWZ0OiBzdGF0ZS5jbGllbnRYXG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjYW5EcmFnWShkcmFnZ2FibGUpIHtcbiAgcmV0dXJuIGRyYWdnYWJsZS5wcm9wcy5heGlzID09PSAnYm90aCcgfHxcbiAgICAgIGRyYWdnYWJsZS5wcm9wcy5heGlzID09PSAneSc7XG59XG5cbmZ1bmN0aW9uIGNhbkRyYWdYKGRyYWdnYWJsZSkge1xuICByZXR1cm4gZHJhZ2dhYmxlLnByb3BzLmF4aXMgPT09ICdib3RoJyB8fFxuICAgICAgZHJhZ2dhYmxlLnByb3BzLmF4aXMgPT09ICd4Jztcbn1cblxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jKSB7XG4gIHJldHVybiB0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJyB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZnVuYykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG59XG5cbi8vIEBjcmVkaXRzIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3JvZ296aG5pa29mZi9hNDNjZmVkMjdjNDFlNGU2OGNkY1xuZnVuY3Rpb24gZmluZEluQXJyYXkoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGlmIChjYWxsYmFjay5hcHBseShjYWxsYmFjaywgW2FycmF5W2ldLCBpLCBhcnJheV0pKSByZXR1cm4gYXJyYXlbaV07XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hlc1NlbGVjdG9yKGVsLCBzZWxlY3Rvcikge1xuICB2YXIgbWV0aG9kID0gZmluZEluQXJyYXkoW1xuICAgICdtYXRjaGVzJyxcbiAgICAnd2Via2l0TWF0Y2hlc1NlbGVjdG9yJyxcbiAgICAnbW96TWF0Y2hlc1NlbGVjdG9yJyxcbiAgICAnbXNNYXRjaGVzU2VsZWN0b3InLFxuICAgICdvTWF0Y2hlc1NlbGVjdG9yJ1xuICBdLCBmdW5jdGlvbihtZXRob2Qpe1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKGVsW21ldGhvZF0pO1xuICB9KTtcblxuICByZXR1cm4gZWxbbWV0aG9kXS5jYWxsKGVsLCBzZWxlY3Rvcik7XG59XG5cbi8vIEBjcmVkaXRzOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ4MTcwMjkvd2hhdHMtdGhlLWJlc3Qtd2F5LXRvLWRldGVjdC1hLXRvdWNoLXNjcmVlbi1kZXZpY2UtdXNpbmctamF2YXNjcmlwdC80ODE5ODg2IzQ4MTk4ODZcbi8qIENvbmRpdGlvbmFsIHRvIGZpeCBub2RlIHNlcnZlciBzaWRlIHJlbmRlcmluZyBvZiBjb21wb25lbnQgKi9cbmlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIERvIE5vZGUgU3R1ZmZcbiAgICB2YXIgaXNUb3VjaERldmljZSA9IGZhbHNlO1xufSBlbHNlIHtcbiAgICAvLyBEbyBCcm93c2VyIFN0dWZmXG4gICAgdmFyIGlzVG91Y2hEZXZpY2UgPSAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHwgLy8gd29ya3Mgb24gbW9zdCBicm93c2Vyc1xuICAgICAgICAgICAgICAgICAgICAgICAgJ29ubXNnZXN0dXJlY2hhbmdlJyBpbiB3aW5kb3c7IC8vIHdvcmtzIG9uIGllMTAgb24gbXMgc3VyZmFjZVxuXG59XG5cbi8vIGxvb2sgOjpoYW5kbGVEcmFnU3RhcnRcbi8vZnVuY3Rpb24gaXNNdWx0aVRvdWNoKGUpIHtcbi8vICByZXR1cm4gZS50b3VjaGVzICYmIEFycmF5LmlzQXJyYXkoZS50b3VjaGVzKSAmJiBlLnRvdWNoZXMubGVuZ3RoID4gMVxuLy99XG5cbi8qKlxuICogc2ltcGxlIGFic3RyYWN0aW9uIGZvciBkcmFnZ2luZyBldmVudHMgbmFtZXNcbiAqICovXG52YXIgZHJhZ0V2ZW50Rm9yID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGV2ZW50c0ZvciA9IHtcbiAgICB0b3VjaDoge1xuICAgICAgc3RhcnQ6ICd0b3VjaHN0YXJ0JyxcbiAgICAgIG1vdmU6ICd0b3VjaG1vdmUnLFxuICAgICAgZW5kOiAndG91Y2hlbmQnXG4gICAgfSxcbiAgICBtb3VzZToge1xuICAgICAgc3RhcnQ6ICdtb3VzZWRvd24nLFxuICAgICAgbW92ZTogJ21vdXNlbW92ZScsXG4gICAgICBlbmQ6ICdtb3VzZXVwJ1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGV2ZW50c0Zvcltpc1RvdWNoRGV2aWNlID8gJ3RvdWNoJyA6ICdtb3VzZSddO1xufSkoKTtcblxuLyoqXG4gKiBnZXQge2NsaWVudFgsIGNsaWVudFl9IHBvc2l0aW9ucyBvZiBjb250cm9sXG4gKiAqL1xuZnVuY3Rpb24gZ2V0Q29udHJvbFBvc2l0aW9uKGUpIHtcbiAgdmFyIHBvc2l0aW9uID0gKGUudG91Y2hlcyAmJiBlLnRvdWNoZXNbMF0pIHx8IGU7XG4gIHJldHVybiB7XG4gICAgY2xpZW50WDogcG9zaXRpb24uY2xpZW50WCxcbiAgICBjbGllbnRZOiBwb3NpdGlvbi5jbGllbnRZXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFkZEV2ZW50KGVsLCBldmVudCwgaGFuZGxlcikge1xuICBpZiAoIWVsKSB7IHJldHVybjsgfVxuICBpZiAoZWwuYXR0YWNoRXZlbnQpIHtcbiAgICBlbC5hdHRhY2hFdmVudCgnb24nICsgZXZlbnQsIGhhbmRsZXIpO1xuICB9IGVsc2UgaWYgKGVsLmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVyLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBlbFsnb24nICsgZXZlbnRdID0gaGFuZGxlcjtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmVFdmVudChlbCwgZXZlbnQsIGhhbmRsZXIpIHtcbiAgaWYgKCFlbCkgeyByZXR1cm47IH1cbiAgaWYgKGVsLmRldGFjaEV2ZW50KSB7XG4gICAgZWwuZGV0YWNoRXZlbnQoJ29uJyArIGV2ZW50LCBoYW5kbGVyKTtcbiAgfSBlbHNlIGlmIChlbC5yZW1vdmVFdmVudExpc3RlbmVyKSB7XG4gICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgZWxbJ29uJyArIGV2ZW50XSA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gb3V0ZXJIZWlnaHQobm9kZSkge1xuICAvLyBUaGlzIGlzIGRlbGliZXJhdGVseSBleGNsdWRpbmcgbWFyZ2luIGZvciBvdXIgY2FsY3VsYXRpb25zLCBzaW5jZSB3ZSBhcmUgdXNpbmdcbiAgLy8gb2Zmc2V0VG9wIHdoaWNoIGlzIGluY2x1ZGluZyBtYXJnaW4uIFNlZSBnZXRCb3VuZFBvc2l0aW9uXG4gIHZhciBoZWlnaHQgPSBub2RlLmNsaWVudEhlaWdodDtcbiAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgaGVpZ2h0ICs9IGludChjb21wdXRlZFN0eWxlLmJvcmRlclRvcFdpZHRoKTtcbiAgaGVpZ2h0ICs9IGludChjb21wdXRlZFN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKTtcbiAgcmV0dXJuIGhlaWdodDtcbn1cblxuZnVuY3Rpb24gb3V0ZXJXaWR0aChub2RlKSB7XG4gIC8vIFRoaXMgaXMgZGVsaWJlcmF0ZWx5IGV4Y2x1ZGluZyBtYXJnaW4gZm9yIG91ciBjYWxjdWxhdGlvbnMsIHNpbmNlIHdlIGFyZSB1c2luZ1xuICAvLyBvZmZzZXRMZWZ0IHdoaWNoIGlzIGluY2x1ZGluZyBtYXJnaW4uIFNlZSBnZXRCb3VuZFBvc2l0aW9uXG4gIHZhciB3aWR0aCA9IG5vZGUuY2xpZW50V2lkdGg7XG4gIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gIHdpZHRoICs9IGludChjb21wdXRlZFN0eWxlLmJvcmRlckxlZnRXaWR0aCk7XG4gIHdpZHRoICs9IGludChjb21wdXRlZFN0eWxlLmJvcmRlclJpZ2h0V2lkdGgpO1xuICByZXR1cm4gd2lkdGg7XG59XG5mdW5jdGlvbiBpbm5lckhlaWdodChub2RlKSB7XG4gIHZhciBoZWlnaHQgPSBub2RlLmNsaWVudEhlaWdodDtcbiAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgaGVpZ2h0IC09IGludChjb21wdXRlZFN0eWxlLnBhZGRpbmdUb3ApO1xuICBoZWlnaHQgLT0gaW50KGNvbXB1dGVkU3R5bGUucGFkZGluZ0JvdHRvbSk7XG4gIHJldHVybiBoZWlnaHQ7XG59XG5cbmZ1bmN0aW9uIGlubmVyV2lkdGgobm9kZSkge1xuICB2YXIgd2lkdGggPSBub2RlLmNsaWVudFdpZHRoO1xuICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICB3aWR0aCAtPSBpbnQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nTGVmdCk7XG4gIHdpZHRoIC09IGludChjb21wdXRlZFN0eWxlLnBhZGRpbmdSaWdodCk7XG4gIHJldHVybiB3aWR0aDtcbn1cblxuZnVuY3Rpb24gaXNOdW0obnVtKSB7XG4gIHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4obnVtKTtcbn1cblxuZnVuY3Rpb24gaW50KGEpIHtcbiAgcmV0dXJuIHBhcnNlSW50KGEsIDEwKTtcbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRQb3NpdGlvbihkcmFnZ2FibGUsIGNsaWVudFgsIGNsaWVudFkpIHtcbiAgdmFyIGJvdW5kcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZHJhZ2dhYmxlLnByb3BzLmJvdW5kcykpO1xuICB2YXIgbm9kZSA9IGRyYWdnYWJsZS5nZXRET01Ob2RlKCk7XG4gIHZhciBwYXJlbnQgPSBub2RlLnBhcmVudE5vZGU7XG5cbiAgaWYgKGJvdW5kcyA9PT0gJ3BhcmVudCcpIHtcbiAgICB2YXIgbm9kZVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgdmFyIHBhcmVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICAvLyBDb21wdXRlIGJvdW5kcy4gVGhpcyBpcyBhIHBhaW4gd2l0aCBwYWRkaW5nIGFuZCBvZmZzZXRzIGJ1dCB0aGlzIGdldHMgaXQgZXhhY3RseSByaWdodC5cbiAgICBib3VuZHMgPSB7XG4gICAgICBsZWZ0OiAtbm9kZS5vZmZzZXRMZWZ0ICsgaW50KHBhcmVudFN0eWxlLnBhZGRpbmdMZWZ0KSArXG4gICAgICAgICAgICBpbnQobm9kZVN0eWxlLmJvcmRlckxlZnRXaWR0aCkgKyBpbnQobm9kZVN0eWxlLm1hcmdpbkxlZnQpLFxuICAgICAgdG9wOiAtbm9kZS5vZmZzZXRUb3AgKyBpbnQocGFyZW50U3R5bGUucGFkZGluZ1RvcCkgK1xuICAgICAgICAgICAgaW50KG5vZGVTdHlsZS5ib3JkZXJUb3BXaWR0aCkgKyBpbnQobm9kZVN0eWxlLm1hcmdpblRvcCksXG4gICAgICByaWdodDogaW5uZXJXaWR0aChwYXJlbnQpIC0gb3V0ZXJXaWR0aChub2RlKSAtIG5vZGUub2Zmc2V0TGVmdCxcbiAgICAgIGJvdHRvbTogaW5uZXJIZWlnaHQocGFyZW50KSAtIG91dGVySGVpZ2h0KG5vZGUpIC0gbm9kZS5vZmZzZXRUb3BcbiAgICB9O1xuICB9XG5cbiAgLy8gS2VlcCB4IGFuZCB5IGJlbG93IHJpZ2h0IGFuZCBib3R0b20gbGltaXRzLi4uXG4gIGlmIChpc051bShib3VuZHMucmlnaHQpKSBjbGllbnRYID0gTWF0aC5taW4oY2xpZW50WCwgYm91bmRzLnJpZ2h0KTtcbiAgaWYgKGlzTnVtKGJvdW5kcy5ib3R0b20pKSBjbGllbnRZID0gTWF0aC5taW4oY2xpZW50WSwgYm91bmRzLmJvdHRvbSk7XG5cbiAgLy8gQnV0IGFib3ZlIGxlZnQgYW5kIHRvcCBsaW1pdHMuXG4gIGlmIChpc051bShib3VuZHMubGVmdCkpIGNsaWVudFggPSBNYXRoLm1heChjbGllbnRYLCBib3VuZHMubGVmdCk7XG4gIGlmIChpc051bShib3VuZHMudG9wKSkgY2xpZW50WSA9IE1hdGgubWF4KGNsaWVudFksIGJvdW5kcy50b3ApO1xuXG4gIHJldHVybiBbY2xpZW50WCwgY2xpZW50WV07XG59XG5cbmZ1bmN0aW9uIHNuYXBUb0dyaWQoZ3JpZCwgcGVuZGluZ1gsIHBlbmRpbmdZKSB7XG4gIHZhciB4ID0gTWF0aC5yb3VuZChwZW5kaW5nWCAvIGdyaWRbMF0pICogZ3JpZFswXTtcbiAgdmFyIHkgPSBNYXRoLnJvdW5kKHBlbmRpbmdZIC8gZ3JpZFsxXSkgKiBncmlkWzFdO1xuICByZXR1cm4gW3gsIHldO1xufVxuXG4vLyBVc2VmdWwgZm9yIHByZXZlbnRpbmcgYmx1ZSBoaWdobGlnaHRzIGFsbCBvdmVyIGV2ZXJ5dGhpbmcgd2hlbiBkcmFnZ2luZy5cbnZhciB1c2VyU2VsZWN0U3R5bGUgPSAnO3VzZXItc2VsZWN0OiBub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7JyArXG4gICctby11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOyc7XG5cbmZ1bmN0aW9uIGFkZFVzZXJTZWxlY3RTdHlsZXMoZHJhZ2dhYmxlKSB7XG4gIGlmICghZHJhZ2dhYmxlLnByb3BzLmVuYWJsZVVzZXJTZWxlY3RIYWNrKSByZXR1cm47XG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdzdHlsZScpIHx8ICcnO1xuICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZSArIHVzZXJTZWxlY3RTdHlsZSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVVzZXJTZWxlY3RTdHlsZXMoZHJhZ2dhYmxlKSB7XG4gIGlmICghZHJhZ2dhYmxlLnByb3BzLmVuYWJsZVVzZXJTZWxlY3RIYWNrKSByZXR1cm47XG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdzdHlsZScpIHx8ICcnO1xuICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZS5yZXBsYWNlKHVzZXJTZWxlY3RTdHlsZSwgJycpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ1NTVHJhbnNmb3JtKHN0eWxlKSB7XG4gIC8vIFJlcGxhY2UgdW5pdGxlc3MgaXRlbXMgd2l0aCBweFxuICB2YXIgeCA9IHN0eWxlLnggKyAncHgnO1xuICB2YXIgeSA9IHN0eWxlLnkgKyAncHgnO1xuICByZXR1cm4ge1xuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgnICsgeCArICcsJyArIHkgKyAnKScsXG4gICAgV2Via2l0VHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyB4ICsgJywnICsgeSArICcpJyxcbiAgICBPVHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyB4ICsgJywnICsgeSArICcpJyxcbiAgICBtc1RyYW5zZm9ybTogJ3RyYW5zbGF0ZSgnICsgeCArICcsJyArIHkgKyAnKScsXG4gICAgTW96VHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyB4ICsgJywnICsgeSArICcpJ1xuICB9O1xufVxuXG5cbi8vXG4vLyBFbmQgSGVscGVycy5cbi8vXG5cbi8vXG4vLyBEZWZpbmUgPERyYWdnYWJsZT5cbi8vXG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICBkaXNwbGF5TmFtZTogJ0RyYWdnYWJsZScsXG5cbiAgcHJvcFR5cGVzOiB7XG4gICAgLyoqXG4gICAgICogYGF4aXNgIGRldGVybWluZXMgd2hpY2ggYXhpcyB0aGUgZHJhZ2dhYmxlIGNhbiBtb3ZlLlxuICAgICAqXG4gICAgICogJ2JvdGgnIGFsbG93cyBtb3ZlbWVudCBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkuXG4gICAgICogJ3gnIGxpbWl0cyBtb3ZlbWVudCB0byBob3Jpem9udGFsIGF4aXMuXG4gICAgICogJ3knIGxpbWl0cyBtb3ZlbWVudCB0byB2ZXJ0aWNhbCBheGlzLlxuICAgICAqXG4gICAgICogRGVmYXVsdHMgdG8gJ2JvdGgnLlxuICAgICAqL1xuICAgIGF4aXM6IFJlYWN0LlByb3BUeXBlcy5vbmVPZihbJ2JvdGgnLCAneCcsICd5J10pLFxuXG4gICAgLyoqXG4gICAgICogYGJvdW5kc2AgZGV0ZXJtaW5lcyB0aGUgcmFuZ2Ugb2YgbW92ZW1lbnQgYXZhaWxhYmxlIHRvIHRoZSBlbGVtZW50LlxuICAgICAqIEF2YWlsYWJsZSB2YWx1ZXMgYXJlOlxuICAgICAqXG4gICAgICogJ3BhcmVudCcgcmVzdHJpY3RzIG1vdmVtZW50IHdpdGhpbiB0aGUgRHJhZ2dhYmxlJ3MgcGFyZW50IG5vZGUuXG4gICAgICpcbiAgICAgKiBBbHRlcm5hdGl2ZWx5LCBwYXNzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcywgYWxsIG9mIHdoaWNoIGFyZSBvcHRpb25hbDpcbiAgICAgKlxuICAgICAqIHtsZWZ0OiBMRUZUX0JPVU5ELCByaWdodDogUklHSFRfQk9VTkQsIGJvdHRvbTogQk9UVE9NX0JPVU5ELCB0b3A6IFRPUF9CT1VORH1cbiAgICAgKlxuICAgICAqIEFsbCB2YWx1ZXMgYXJlIGluIHB4LlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqICAgdmFyIEFwcCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICAgKiAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgKiAgICAgICAgIHJldHVybiAoXG4gICAgICogICAgICAgICAgICA8RHJhZ2dhYmxlIGJvdW5kcz17e3JpZ2h0OiAzMDAsIGJvdHRvbTogMzAwfX0+XG4gICAgICogICAgICAgICAgICAgIDxkaXY+Q29udGVudDwvZGl2PlxuICAgICAqICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgKiAgICAgICAgICk7XG4gICAgICogICAgICAgfVxuICAgICAqICAgfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgYm91bmRzOiBSZWFjdC5Qcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFJlYWN0LlByb3BUeXBlcy5zaGFwZSh7XG4gICAgICAgIGxlZnQ6IFJlYWN0LlByb3BUeXBlcy5OdW1iZXIsXG4gICAgICAgIHJpZ2h0OiBSZWFjdC5Qcm9wVHlwZXMuTnVtYmVyLFxuICAgICAgICB0b3A6IFJlYWN0LlByb3BUeXBlcy5OdW1iZXIsXG4gICAgICAgIGJvdHRvbTogUmVhY3QuUHJvcFR5cGVzLk51bWJlclxuICAgICAgfSksXG4gICAgICBSZWFjdC5Qcm9wVHlwZXMub25lT2YoWydwYXJlbnQnLCBmYWxzZV0pXG4gICAgXSksXG5cbiAgICAvKipcbiAgICAgKiBCeSBkZWZhdWx0LCB3ZSBhZGQgJ3VzZXItc2VsZWN0Om5vbmUnIGF0dHJpYnV0ZXMgdG8gdGhlIGRvY3VtZW50IGJvZHlcbiAgICAgKiB0byBwcmV2ZW50IHVnbHkgdGV4dCBzZWxlY3Rpb24gZHVyaW5nIGRyYWcuIElmIHRoaXMgaXMgY2F1c2luZyBwcm9ibGVtc1xuICAgICAqIGZvciB5b3VyIGFwcCwgc2V0IHRoaXMgdG8gYGZhbHNlYC5cbiAgICAgKi9cbiAgICBlbmFibGVVc2VyU2VsZWN0SGFjazogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAvKipcbiAgICAgKiBgaGFuZGxlYCBzcGVjaWZpZXMgYSBzZWxlY3RvciB0byBiZSB1c2VkIGFzIHRoZSBoYW5kbGUgdGhhdCBpbml0aWF0ZXMgZHJhZy5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiAgIHZhciBBcHAgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgICogICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICogICAgICAgICByZXR1cm4gKFxuICAgICAqICAgICAgICAgICAgPERyYWdnYWJsZSBoYW5kbGU9XCIuaGFuZGxlXCI+XG4gICAgICogICAgICAgICAgICAgIDxkaXY+XG4gICAgICogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhhbmRsZVwiPkNsaWNrIG1lIHRvIGRyYWc8L2Rpdj5cbiAgICAgKiAgICAgICAgICAgICAgICAgIDxkaXY+VGhpcyBpcyBzb21lIG90aGVyIGNvbnRlbnQ8L2Rpdj5cbiAgICAgKiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICogICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAqICAgICAgICAgKTtcbiAgICAgKiAgICAgICB9XG4gICAgICogICB9KTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBoYW5kbGU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBgY2FuY2VsYCBzcGVjaWZpZXMgYSBzZWxlY3RvciB0byBiZSB1c2VkIHRvIHByZXZlbnQgZHJhZyBpbml0aWFsaXphdGlvbi5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiAgIHZhciBBcHAgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgICogICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICogICAgICAgICAgIHJldHVybihcbiAgICAgKiAgICAgICAgICAgICAgIDxEcmFnZ2FibGUgY2FuY2VsPVwiLmNhbmNlbFwiPlxuICAgICAqICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhbmNlbFwiPllvdSBjYW4ndCBkcmFnIGZyb20gaGVyZTwvZGl2PlxuICAgICAqICAgICAgICAgICAgPGRpdj5EcmFnZ2luZyBoZXJlIHdvcmtzIGZpbmU8L2Rpdj5cbiAgICAgKiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgKiAgICAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAqICAgICAgICAgICApO1xuICAgICAqICAgICAgIH1cbiAgICAgKiAgIH0pO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGNhbmNlbDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIGBncmlkYCBzcGVjaWZpZXMgdGhlIHggYW5kIHkgdGhhdCBkcmFnZ2luZyBzaG91bGQgc25hcCB0by5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiAgIHZhciBBcHAgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgICogICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICogICAgICAgICAgIHJldHVybiAoXG4gICAgICogICAgICAgICAgICAgICA8RHJhZ2dhYmxlIGdyaWQ9e1syNSwgMjVdfT5cbiAgICAgKiAgICAgICAgICAgICAgICAgICA8ZGl2Pkkgc25hcCB0byBhIDI1IHggMjUgZ3JpZDwvZGl2PlxuICAgICAqICAgICAgICAgICAgICAgPC9EcmFnZ2FibGU+XG4gICAgICogICAgICAgICAgICk7XG4gICAgICogICAgICAgfVxuICAgICAqICAgfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgZ3JpZDogUmVhY3QuUHJvcFR5cGVzLmFycmF5T2YoUmVhY3QuUHJvcFR5cGVzLm51bWJlciksXG5cbiAgICAvKipcbiAgICAgKiBgc3RhcnRgIHNwZWNpZmllcyB0aGUgeCBhbmQgeSB0aGF0IHRoZSBkcmFnZ2VkIGl0ZW0gc2hvdWxkIHN0YXJ0IGF0XG4gICAgICpcbiAgICAgKiBFeGFtcGxlOlxuICAgICAqXG4gICAgICogYGBganN4XG4gICAgICogICAgICB2YXIgQXBwID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgICAqICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAqICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAqICAgICAgICAgICAgICAgICAgPERyYWdnYWJsZSBzdGFydD17e3g6IDI1LCB5OiAyNX19PlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgIDxkaXY+SSBzdGFydCB3aXRoIHRyYW5zZm9ybVg6IDI1cHggYW5kIHRyYW5zZm9ybVk6IDI1cHg7PC9kaXY+XG4gICAgICogICAgICAgICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgKiAgICAgICAgICAgICAgKTtcbiAgICAgKiAgICAgICAgICB9XG4gICAgICogICAgICB9KTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBzdGFydDogUmVhY3QuUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgICB5OiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyXG4gICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBgbW92ZU9uU3RhcnRDaGFuZ2VgLCBpZiB0cnVlIChkZWZhdWx0IGZhbHNlKSB3aWxsIG1vdmUgdGhlIGVsZW1lbnQgaWYgdGhlIGBzdGFydGBcbiAgICAgKiBwcm9wZXJ0eSBjaGFuZ2VzLlxuICAgICAqL1xuICAgIG1vdmVPblN0YXJ0Q2hhbmdlOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcblxuXG4gICAgLyoqXG4gICAgICogYHpJbmRleGAgc3BlY2lmaWVzIHRoZSB6SW5kZXggdG8gdXNlIHdoaWxlIGRyYWdnaW5nLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqICAgdmFyIEFwcCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICAgKiAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgKiAgICAgICAgICAgcmV0dXJuIChcbiAgICAgKiAgICAgICAgICAgICAgIDxEcmFnZ2FibGUgekluZGV4PXsxMDB9PlxuICAgICAqICAgICAgICAgICAgICAgICAgIDxkaXY+SSBoYXZlIGEgekluZGV4PC9kaXY+XG4gICAgICogICAgICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgKiAgICAgICAgICAgKTtcbiAgICAgKiAgICAgICB9XG4gICAgICogICB9KTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICB6SW5kZXg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBkcmFnZ2luZyBzdGFydHMuXG4gICAgICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBib29sZWFuIGZhbHNlLCBkcmFnZ2luZyB3aWxsIGJlIGNhbmNlbGVkLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGpzXG4gICAgICogIGZ1bmN0aW9uIChldmVudCwgdWkpIHt9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgZXZlbnRgIGlzIHRoZSBFdmVudCB0aGF0IHdhcyB0cmlnZ2VyZWQuXG4gICAgICogYHVpYCBpcyBhbiBvYmplY3Q6XG4gICAgICpcbiAgICAgKiBgYGBqc1xuICAgICAqICB7XG4gICAgICogICAgcG9zaXRpb246IHt0b3A6IDAsIGxlZnQ6IDB9XG4gICAgICogIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBvblN0YXJ0OiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGlsZSBkcmFnZ2luZy5cbiAgICAgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGJvb2xlYW4gZmFsc2UsIGRyYWdnaW5nIHdpbGwgYmUgY2FuY2VsZWQuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlOlxuICAgICAqXG4gICAgICogYGBganNcbiAgICAgKiAgZnVuY3Rpb24gKGV2ZW50LCB1aSkge31cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBldmVudGAgaXMgdGhlIEV2ZW50IHRoYXQgd2FzIHRyaWdnZXJlZC5cbiAgICAgKiBgdWlgIGlzIGFuIG9iamVjdDpcbiAgICAgKlxuICAgICAqIGBgYGpzXG4gICAgICogIHtcbiAgICAgKiAgICBwb3NpdGlvbjoge3RvcDogMCwgbGVmdDogMH1cbiAgICAgKiAgfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIG9uRHJhZzogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBkcmFnZ2luZyBzdG9wcy5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBqc1xuICAgICAqICBmdW5jdGlvbiAoZXZlbnQsIHVpKSB7fVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGV2ZW50YCBpcyB0aGUgRXZlbnQgdGhhdCB3YXMgdHJpZ2dlcmVkLlxuICAgICAqIGB1aWAgaXMgYW4gb2JqZWN0OlxuICAgICAqXG4gICAgICogYGBganNcbiAgICAgKiAge1xuICAgICAqICAgIHBvc2l0aW9uOiB7dG9wOiAwLCBsZWZ0OiAwfVxuICAgICAqICB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgb25TdG9wOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcblxuICAgIC8qKlxuICAgICAqIEEgd29ya2Fyb3VuZCBvcHRpb24gd2hpY2ggY2FuIGJlIHBhc3NlZCBpZiBvbk1vdXNlRG93biBuZWVkcyB0byBiZSBhY2Nlc3NlZCxcbiAgICAgKiBzaW5jZSBpdCdsbCBhbHdheXMgYmUgYmxvY2tlZCAoZHVlIHRvIHRoYXQgdGhlcmUncyBpbnRlcm5hbCB1c2Ugb2Ygb25Nb3VzZURvd24pXG4gICAgICovXG4gICAgb25Nb3VzZURvd246IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uKG5ld1Byb3BzKSB7XG4gICAgLy8gUmVhY3QgdG8gY2hhbmdlcyBpbiB0aGUgJ3N0YXJ0JyBwYXJhbS5cbiAgICBpZiAobmV3UHJvcHMubW92ZU9uU3RhcnRDaGFuZ2UgJiYgbmV3UHJvcHMuc3RhcnQpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUodGhpcy5nZXRJbml0aWFsU3RhdGUobmV3UHJvcHMpKTtcbiAgICB9XG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uKCkge1xuICAgIC8vIFJlbW92ZSBhbnkgbGVmdG92ZXIgZXZlbnQgaGFuZGxlcnNcbiAgICByZW1vdmVFdmVudCh3aW5kb3csIGRyYWdFdmVudEZvclsnbW92ZSddLCB0aGlzLmhhbmRsZURyYWcpO1xuICAgIHJlbW92ZUV2ZW50KHdpbmRvdywgZHJhZ0V2ZW50Rm9yWydlbmQnXSwgdGhpcy5oYW5kbGVEcmFnRW5kKTtcbiAgICByZW1vdmVVc2VyU2VsZWN0U3R5bGVzKHRoaXMpO1xuICB9LFxuXG4gIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBheGlzOiAnYm90aCcsXG4gICAgICBib3VuZHM6IGZhbHNlLFxuICAgICAgaGFuZGxlOiBudWxsLFxuICAgICAgY2FuY2VsOiBudWxsLFxuICAgICAgZ3JpZDogbnVsbCxcbiAgICAgIG1vdmVPblN0YXJ0Q2hhbmdlOiBmYWxzZSxcbiAgICAgIHN0YXJ0OiB7eDogMCwgeTogMH0sXG4gICAgICB6SW5kZXg6IE5hTixcbiAgICAgIGVuYWJsZVVzZXJTZWxlY3RIYWNrOiB0cnVlLFxuICAgICAgb25TdGFydDogZW1wdHlGdW5jdGlvbixcbiAgICAgIG9uRHJhZzogZW1wdHlGdW5jdGlvbixcbiAgICAgIG9uU3RvcDogZW1wdHlGdW5jdGlvbixcbiAgICAgIG9uTW91c2VEb3duOiBlbXB0eUZ1bmN0aW9uXG4gICAgfTtcbiAgfSxcblxuICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIC8vIEhhbmRsZSBjYWxsIGZyb20gQ1dSUFxuICAgIHByb3BzID0gcHJvcHMgfHwgdGhpcy5wcm9wcztcbiAgICByZXR1cm4ge1xuICAgICAgLy8gV2hldGhlciBvciBub3Qgd2UgYXJlIGN1cnJlbnRseSBkcmFnZ2luZy5cbiAgICAgIGRyYWdnaW5nOiBmYWxzZSxcblxuICAgICAgLy8gT2Zmc2V0IGJldHdlZW4gc3RhcnQgdG9wL2xlZnQgYW5kIG1vdXNlIHRvcC9sZWZ0IHdoaWxlIGRyYWdnaW5nLlxuICAgICAgb2Zmc2V0WDogMCwgb2Zmc2V0WTogMCxcblxuICAgICAgLy8gQ3VycmVudCB0cmFuc2Zvcm0geCBhbmQgeS5cbiAgICAgIGNsaWVudFg6IHByb3BzLnN0YXJ0LngsIGNsaWVudFk6IHByb3BzLnN0YXJ0LnlcbiAgICB9O1xuICB9LFxuXG4gIGhhbmRsZURyYWdTdGFydDogZnVuY3Rpb24gKGUpIHtcbiAgICAvLyB0b2RvOiB3cml0ZSByaWdodCBpbXBsZW1lbnRhdGlvbiB0byBwcmV2ZW50IG11bHRpdG91Y2ggZHJhZ1xuICAgIC8vIHByZXZlbnQgbXVsdGktdG91Y2ggZXZlbnRzXG4gICAgLy8gaWYgKGlzTXVsdGlUb3VjaChlKSkge1xuICAgIC8vICAgICB0aGlzLmhhbmRsZURyYWdFbmQuYXBwbHkoZSwgYXJndW1lbnRzKTtcbiAgICAvLyAgICAgcmV0dXJuXG4gICAgLy8gfVxuXG4gICAgLy8gTWFrZSBpdCBwb3NzaWJsZSB0byBhdHRhY2ggZXZlbnQgaGFuZGxlcnMgb24gdG9wIG9mIHRoaXMgb25lXG4gICAgdGhpcy5wcm9wcy5vbk1vdXNlRG93bihlKTtcblxuICAgIC8vIFNob3J0IGNpcmN1aXQgaWYgaGFuZGxlIG9yIGNhbmNlbCBwcm9wIHdhcyBwcm92aWRlZCBhbmQgc2VsZWN0b3IgZG9lc24ndCBtYXRjaFxuICAgIGlmICgodGhpcy5wcm9wcy5oYW5kbGUgJiYgIW1hdGNoZXNTZWxlY3RvcihlLnRhcmdldCwgdGhpcy5wcm9wcy5oYW5kbGUpKSB8fFxuICAgICAgKHRoaXMucHJvcHMuY2FuY2VsICYmIG1hdGNoZXNTZWxlY3RvcihlLnRhcmdldCwgdGhpcy5wcm9wcy5jYW5jZWwpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENhbGwgZXZlbnQgaGFuZGxlci4gSWYgaXQgcmV0dXJucyBleHBsaWNpdCBmYWxzZSwgY2FuY2VsLlxuICAgIHZhciBzaG91bGRTdGFydCA9IHRoaXMucHJvcHMub25TdGFydChlLCBjcmVhdGVVSUV2ZW50KHRoaXMpKTtcbiAgICBpZiAoc2hvdWxkU3RhcnQgPT09IGZhbHNlKSByZXR1cm47XG5cbiAgICB2YXIgZHJhZ1BvaW50ID0gZ2V0Q29udHJvbFBvc2l0aW9uKGUpO1xuXG4gICAgLy8gQWRkIGEgc3R5bGUgdG8gdGhlIGJvZHkgdG8gZGlzYWJsZSB1c2VyLXNlbGVjdC4gVGhpcyBwcmV2ZW50cyB0ZXh0IGZyb21cbiAgICAvLyBiZWluZyBzZWxlY3RlZCBhbGwgb3ZlciB0aGUgcGFnZS5cbiAgICBhZGRVc2VyU2VsZWN0U3R5bGVzKHRoaXMpO1xuXG4gICAgLy8gSW5pdGlhdGUgZHJhZ2dpbmcuIFNldCB0aGUgY3VycmVudCB4IGFuZCB5IGFzIG9mZnNldHNcbiAgICAvLyBzbyB3ZSBrbm93IGhvdyBtdWNoIHdlJ3ZlIG1vdmVkIGR1cmluZyB0aGUgZHJhZy4gVGhpcyBhbGxvd3MgdXNcbiAgICAvLyB0byBkcmFnIGVsZW1lbnRzIGFyb3VuZCBldmVuIGlmIHRoZXkgaGF2ZSBiZWVuIG1vdmVkLCB3aXRob3V0IGlzc3VlLlxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZHJhZ2dpbmc6IHRydWUsXG4gICAgICBvZmZzZXRYOiBkcmFnUG9pbnQuY2xpZW50WCAtIHRoaXMuc3RhdGUuY2xpZW50WCxcbiAgICAgIG9mZnNldFk6IGRyYWdQb2ludC5jbGllbnRZIC0gdGhpcy5zdGF0ZS5jbGllbnRZXG4gICAgfSk7XG5cblxuICAgIC8vIEFkZCBldmVudCBoYW5kbGVyc1xuICAgIGFkZEV2ZW50KHdpbmRvdywgZHJhZ0V2ZW50Rm9yWydtb3ZlJ10sIHRoaXMuaGFuZGxlRHJhZyk7XG4gICAgYWRkRXZlbnQod2luZG93LCBkcmFnRXZlbnRGb3JbJ2VuZCddLCB0aGlzLmhhbmRsZURyYWdFbmQpO1xuICB9LFxuXG4gIGhhbmRsZURyYWdFbmQ6IGZ1bmN0aW9uIChlKSB7XG4gICAgLy8gU2hvcnQgY2lyY3VpdCBpZiBub3QgY3VycmVudGx5IGRyYWdnaW5nXG4gICAgaWYgKCF0aGlzLnN0YXRlLmRyYWdnaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmVtb3ZlVXNlclNlbGVjdFN0eWxlcyh0aGlzKTtcblxuICAgIC8vIFR1cm4gb2ZmIGRyYWdnaW5nXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBkcmFnZ2luZzogZmFsc2VcbiAgICB9KTtcblxuICAgIC8vIENhbGwgZXZlbnQgaGFuZGxlclxuICAgIHRoaXMucHJvcHMub25TdG9wKGUsIGNyZWF0ZVVJRXZlbnQodGhpcykpO1xuXG4gICAgLy8gUmVtb3ZlIGV2ZW50IGhhbmRsZXJzXG4gICAgcmVtb3ZlRXZlbnQod2luZG93LCBkcmFnRXZlbnRGb3JbJ21vdmUnXSwgdGhpcy5oYW5kbGVEcmFnKTtcbiAgICByZW1vdmVFdmVudCh3aW5kb3csIGRyYWdFdmVudEZvclsnZW5kJ10sIHRoaXMuaGFuZGxlRHJhZ0VuZCk7XG4gIH0sXG5cbiAgaGFuZGxlRHJhZzogZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgZHJhZ1BvaW50ID0gZ2V0Q29udHJvbFBvc2l0aW9uKGUpO1xuXG4gICAgLy8gQ2FsY3VsYXRlIFggYW5kIFlcbiAgICB2YXIgY2xpZW50WCA9IGRyYWdQb2ludC5jbGllbnRYIC0gdGhpcy5zdGF0ZS5vZmZzZXRYO1xuICAgIHZhciBjbGllbnRZID0gZHJhZ1BvaW50LmNsaWVudFkgLSB0aGlzLnN0YXRlLm9mZnNldFk7XG5cbiAgICAvLyBTbmFwIHRvIGdyaWQgaWYgcHJvcCBoYXMgYmVlbiBwcm92aWRlZFxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvcHMuZ3JpZCkpIHtcbiAgICAgIHZhciBjb29yZHMgPSBzbmFwVG9HcmlkKHRoaXMucHJvcHMuZ3JpZCwgY2xpZW50WCwgY2xpZW50WSk7XG4gICAgICBjbGllbnRYID0gY29vcmRzWzBdLCBjbGllbnRZID0gY29vcmRzWzFdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmJvdW5kcykge1xuICAgICAgdmFyIHBvcyA9IGdldEJvdW5kUG9zaXRpb24odGhpcywgY2xpZW50WCwgY2xpZW50WSk7XG4gICAgICBjbGllbnRYID0gcG9zWzBdLCBjbGllbnRZID0gcG9zWzFdO1xuICAgIH1cblxuICAgIC8vIENhbGwgZXZlbnQgaGFuZGxlci4gSWYgaXQgcmV0dXJucyBleHBsaWNpdCBmYWxzZSwgY2FuY2VsLlxuICAgIHZhciBzaG91bGRVcGRhdGUgPSB0aGlzLnByb3BzLm9uRHJhZyhlLCBjcmVhdGVVSUV2ZW50KHRoaXMpKTtcbiAgICBpZiAoc2hvdWxkVXBkYXRlID09PSBmYWxzZSkgcmV0dXJuIHRoaXMuaGFuZGxlRHJhZ0VuZCgpO1xuXG4gICAgLy8gVXBkYXRlIHRyYW5zZm9ybVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgY2xpZW50WDogY2xpZW50WCxcbiAgICAgIGNsaWVudFk6IGNsaWVudFlcbiAgICB9KTtcbiAgfSxcblxuICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAvLyBDcmVhdGUgc3R5bGUgb2JqZWN0LiBXZSBleHRlbmQgZnJvbSBleGlzdGluZyBzdHlsZXMgc28gd2UgZG9uJ3RcbiAgICAvLyByZW1vdmUgYW55dGhpbmcgYWxyZWFkeSBzZXQgKGxpa2UgYmFja2dyb3VuZCwgY29sb3IsIGV0YykuXG4gICAgdmFyIGNoaWxkU3R5bGUgPSB0aGlzLnByb3BzLmNoaWxkcmVuLnByb3BzLnN0eWxlIHx8IHt9O1xuXG4gICAgLy8gQWRkIGEgQ1NTIHRyYW5zZm9ybSB0byBtb3ZlIHRoZSBlbGVtZW50IGFyb3VuZC4gVGhpcyBhbGxvd3MgdXMgdG8gbW92ZSB0aGUgZWxlbWVudCBhcm91bmRcbiAgICAvLyB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IHdoZXRoZXIgb3Igbm90IGl0IGlzIHJlbGF0aXZlbHkgb3IgYWJzb2x1dGVseSBwb3NpdGlvbmVkLlxuICAgIC8vIElmIHRoZSBpdGVtIHlvdSBhcmUgZHJhZ2dpbmcgYWxyZWFkeSBoYXMgYSB0cmFuc2Zvcm0gc2V0LCB3cmFwIGl0IGluIGEgPHNwYW4+IHNvIDxEcmFnZ2FibGU+XG4gICAgLy8gaGFzIGEgY2xlYW4gc2xhdGUuXG4gICAgdmFyIHRyYW5zZm9ybSA9IGNyZWF0ZUNTU1RyYW5zZm9ybSh7XG4gICAgICAvLyBTZXQgbGVmdCBpZiBob3Jpem9udGFsIGRyYWcgaXMgZW5hYmxlZFxuICAgICAgeDogY2FuRHJhZ1godGhpcykgP1xuICAgICAgICB0aGlzLnN0YXRlLmNsaWVudFggOlxuICAgICAgICAwLFxuXG4gICAgICAvLyBTZXQgdG9wIGlmIHZlcnRpY2FsIGRyYWcgaXMgZW5hYmxlZFxuICAgICAgeTogY2FuRHJhZ1kodGhpcykgP1xuICAgICAgICB0aGlzLnN0YXRlLmNsaWVudFkgOlxuICAgICAgICAwXG4gICAgfSk7XG4gICAgdmFyIHN0eWxlID0gYXNzaWduKHt9LCBjaGlsZFN0eWxlLCB0cmFuc2Zvcm0pO1xuXG4gICAgLy8gU2V0IHpJbmRleCBpZiBjdXJyZW50bHkgZHJhZ2dpbmcgYW5kIHByb3AgaGFzIGJlZW4gcHJvdmlkZWRcbiAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiAhaXNOYU4odGhpcy5wcm9wcy56SW5kZXgpKSB7XG4gICAgICBzdHlsZS56SW5kZXggPSB0aGlzLnByb3BzLnpJbmRleDtcbiAgICB9XG5cbiAgICB2YXIgY2xhc3NOYW1lID0gY2xhc3NOYW1lcygodGhpcy5wcm9wcy5jaGlsZHJlbi5wcm9wcy5jbGFzc05hbWUgfHwgJycpLCAncmVhY3QtZHJhZ2dhYmxlJywge1xuICAgICAgJ3JlYWN0LWRyYWdnYWJsZS1kcmFnZ2luZyc6IHRoaXMuc3RhdGUuZHJhZ2dpbmcsXG4gICAgICAncmVhY3QtZHJhZ2dhYmxlLWRyYWdnZWQnOiB0aGlzLnN0YXRlLmRyYWdnZWRcbiAgICB9KTtcblxuICAgIC8vIFJldXNlIHRoZSBjaGlsZCBwcm92aWRlZFxuICAgIC8vIFRoaXMgbWFrZXMgaXQgZmxleGlibGUgdG8gdXNlIHdoYXRldmVyIGVsZW1lbnQgaXMgd2FudGVkIChkaXYsIHVsLCBldGMpXG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChSZWFjdC5DaGlsZHJlbi5vbmx5KHRoaXMucHJvcHMuY2hpbGRyZW4pLCB7XG4gICAgICBzdHlsZTogc3R5bGUsXG4gICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcblxuICAgICAgb25Nb3VzZURvd246IHRoaXMuaGFuZGxlRHJhZ1N0YXJ0LFxuICAgICAgb25Ub3VjaFN0YXJ0OiBmdW5jdGlvbihldil7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgZm9yIHNjcm9sbFxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVEcmFnU3RhcnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH0uYmluZCh0aGlzKSxcblxuICAgICAgb25Nb3VzZVVwOiB0aGlzLmhhbmRsZURyYWdFbmQsXG4gICAgICBvblRvdWNoRW5kOiB0aGlzLmhhbmRsZURyYWdFbmRcbiAgICB9KTtcbiAgfVxufSk7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuL2xpYi9kcmFnZ2FibGUuanNcbiAqKi8iLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogZXh0ZXJuYWwgXCJSZWFjdFwiXG4gKiogbW9kdWxlIGlkID0gMlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBUb09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PSBudWxsKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIGtleXM7XG5cdHZhciB0byA9IFRvT2JqZWN0KHRhcmdldCk7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gYXJndW1lbnRzW3NdO1xuXHRcdGtleXMgPSBPYmplY3Qua2V5cyhPYmplY3QoZnJvbSkpO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR0b1trZXlzW2ldXSA9IGZyb21ba2V5c1tpXV07XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4vfi9vYmplY3QtYXNzaWduL2luZGV4LmpzXG4gKiovIiwiLyohXG4gIENvcHlyaWdodCAoYykgMjAxNSBKZWQgV2F0c29uLlxuICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCksIHNlZVxuICBodHRwOi8vamVkd2F0c29uLmdpdGh1Yi5pby9jbGFzc25hbWVzXG4qL1xuXG5mdW5jdGlvbiBjbGFzc05hbWVzKCkge1xuXHR2YXIgY2xhc3NlcyA9ICcnO1xuXHR2YXIgYXJnO1xuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0YXJnID0gYXJndW1lbnRzW2ldO1xuXHRcdGlmICghYXJnKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRpZiAoJ3N0cmluZycgPT09IHR5cGVvZiBhcmcgfHwgJ251bWJlcicgPT09IHR5cGVvZiBhcmcpIHtcblx0XHRcdGNsYXNzZXMgKz0gJyAnICsgYXJnO1xuXHRcdH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZykgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcblx0XHRcdGNsYXNzZXMgKz0gJyAnICsgY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xuXHRcdH0gZWxzZSBpZiAoJ29iamVjdCcgPT09IHR5cGVvZiBhcmcpIHtcblx0XHRcdGZvciAodmFyIGtleSBpbiBhcmcpIHtcblx0XHRcdFx0aWYgKCFhcmcuaGFzT3duUHJvcGVydHkoa2V5KSB8fCAhYXJnW2tleV0pIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjbGFzc2VzICs9ICcgJyArIGtleTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0cmV0dXJuIGNsYXNzZXMuc3Vic3RyKDEpO1xufVxuXG4vLyBzYWZlbHkgZXhwb3J0IGNsYXNzTmFtZXMgZm9yIG5vZGUgLyBicm93c2VyaWZ5XG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0bW9kdWxlLmV4cG9ydHMgPSBjbGFzc05hbWVzO1xufVxuXG4vLyBzYWZlbHkgZXhwb3J0IGNsYXNzTmFtZXMgZm9yIFJlcXVpcmVKU1xuaWYgKHR5cGVvZiBkZWZpbmUgIT09ICd1bmRlZmluZWQnICYmIGRlZmluZS5hbWQpIHtcblx0ZGVmaW5lKCdjbGFzc25hbWVzJywgW10sIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBjbGFzc05hbWVzO1xuXHR9KTtcbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4vfi9jbGFzc25hbWVzL2luZGV4LmpzXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/lib/draggable.js b/lib/draggable.js index 27faeae4..e63e937f 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -221,7 +221,6 @@ function removeUserSelectStyles(draggable) { } function createCSSTransform(style) { - if (!style.x && !style.y) return {}; // Replace unitless items with px var x = style.x + 'px'; var y = style.y + 'px'; From 96c9f74584c681f1a1ffe844edadfa4efae63d2c Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 18 May 2015 10:00:54 -0500 Subject: [PATCH 050/412] release v0.7.4 --- CHANGELOG.md | 5 +++++ bower.json | 2 +- dist/react-draggable.js | 2 +- dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 7 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 754e5389..ad32efb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -82,3 +82,8 @@ - Removed a `moveOnStartChange` optimization that was causing problems when attempting to move a `` back to its initial position. See https://github.com/STRML/react-grid-layout/issues/56 + +### 0.7.4 (May 18, 2015) + +- Fix a bug where a quick drag out of bounds to `0,0` would cause the element to remain in an inaccurate position, + because the translation was removed from the CSS. See #55. diff --git a/bower.json b/bower.json index d9666f92..99bf01be 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.3", + "version": "0.7.4", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 7f3662b9..29c29b6a 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -824,4 +824,4 @@ return /******/ (function(modules) { // webpackBootstrap /******/ ]) }); ; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIi4uL3dlYnBhY2svYm9vdHN0cmFwIDhkZDM1MDdkMGYwNTlkNjUwMTJiIiwiLi4vLi9pbmRleC5qcyIsIi4uLy4vbGliL2RyYWdnYWJsZS5qcyIsIi4uL2V4dGVybmFsIFwiUmVhY3RcIiIsIi4uLy4vfi9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwiLi4vLi9+L2NsYXNzbmFtZXMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDdENBLE9BQU0sQ0FBQyxPQUFPLEdBQUcsbUJBQU8sQ0FBQyxDQUFpQixDQUFDLENBQUM7Ozs7Ozs7QUNBNUMsYUFBWSxDQUFDOztBQUViLEtBQUksS0FBSyxHQUFHLG1CQUFPLENBQUMsQ0FBTyxDQUFDLENBQUM7QUFDN0IsS0FBSSxhQUFhLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDakMsS0FBSSxNQUFNLEdBQUcsbUJBQU8sQ0FBQyxDQUFlLENBQUMsQ0FBQztBQUN0QyxLQUFJLFVBQVUsR0FBRyxtQkFBTyxDQUFDLENBQVksQ0FBQyxDQUFDOztBQUV2QyxHQUFFO0FBQ0YsdURBQXNEO0FBQ3RELEdBQUU7O0FBRUYsVUFBUyxhQUFhLENBQUMsU0FBUyxFQUFFOztHQUVoQyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7R0FDdkQsT0FBTztLQUNMLElBQUksRUFBRSxTQUFTLENBQUMsVUFB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SyxDQUFDLFNBQVMsQ0FBQyxNQUFNO1NBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU07U0FDN0IsR0FBRyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTTtTQUMzQixNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNO1FBQy9CLENBQUM7T0FDRixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5QyxNQUFLLENBQUM7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBQUksb0JBQW9CLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSSxNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSSxNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7S0FFSSxLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENB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eUM7QUFDekMsS0FBSSxJQUEyQyxFQUFFO0VBQ2hELGlDQUFxQixFQUFFLGtDQUFFLFdBQVc7R0FDbkMsT0FBTyxVQUFVLENBQUM7R0FDbEIsK0lBQUMsQ0FBQztFQUNIIiwiZmlsZSI6Ii4vZGlzdC9yZWFjdC1kcmFnZ2FibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJSZWFjdFwiKSk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXCJSZWFjdFwiXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJSZWFjdERyYWdnYWJsZVwiXSA9IGZhY3RvcnkocmVxdWlyZShcIlJlYWN0XCIpKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJSZWFjdERyYWdnYWJsZVwiXSA9IGZhY3Rvcnkocm9vdFtcIlJlYWN0XCJdKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fKSB7XG5yZXR1cm4gXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uXG4gKiovIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGV4cG9ydHM6IHt9LFxuIFx0XHRcdGlkOiBtb2R1bGVJZCxcbiBcdFx0XHRsb2FkZWQ6IGZhbHNlXG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrL2Jvb3RzdHJhcCA4ZGQzNTA3ZDBmMDU5ZDY1MDEyYlxuICoqLyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvZHJhZ2dhYmxlJyk7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuL2luZGV4LmpzXG4gKiovIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIGVtcHR5RnVuY3Rpb24gPSBmdW5jdGlvbigpe307XG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xudmFyIGNsYXNzTmFtZXMgPSByZXF1aXJlKCdjbGFzc25hbWVzJyk7XG5cbi8vXG4vLyBIZWxwZXJzLiBTZWUgRWxlbWVudCBkZWZpbml0aW9uIGJlbG93IHRoaXMgc2VjdGlvbi5cbi8vXG5cbmZ1bmN0aW9uIGNyZWF0ZVVJRXZlbnQoZHJhZ2dhYmxlKSB7XG4gIC8vIFN0YXRlIGNoYW5nZXMgYXJlIG9mdGVuIChidXQgbm90IGFsd2F5cyEpIGFzeW5jLiBXZSB3YW50IHRoZSBsYXRlc3QgdmFsdWUuXG4gIHZhciBzdGF0ZSA9IGRyYWdnYWJsZS5fcGVuZGluZ1N0YXRlIHx8IGRyYWdnYWJsZS5zdGF0ZTtcbiAgcmV0dXJuIHtcbiAgICBub2RlOiBkcmFnZ2FibGUuZ2V0RE9NTm9kZSgpLFxuICAgIHBvc2l0aW9uOiB7XG4gICAgICB0b3A6IHN0YXRlLmNsaWVudFksXG4gICAgICBsZWZ0OiBzdGF0ZS5jbGllbnRYXG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjYW5EcmFnWShkcmFnZ2FibGUpIHtcbiAgcmV0dXJuIGRyYWdnYWJsZS5wcm9wcy5heGlzID09PSAnYm90aCcgfHxcbiAgICAgIGRyYWdnYWJsZS5wcm9wcy5heGlzID09PSAneSc7XG59XG5cbmZ1bmN0aW9uIGNhbkRyYWdYKGRyYWdnYWJsZSkge1xuICByZXR1cm4gZHJhZ2dhYmxlLnByb3BzLmF4aXMgPT09ICdib3RoJyB8fFxuICAgICAgZHJhZ2dhYmxlLnByb3BzLmF4aXMgPT09ICd4Jztcbn1cblxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jKSB7XG4gIHJldHVybiB0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJyB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZnVuYykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG59XG5cbi8vIEBjcmVkaXRzIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3JvZ296aG5pa29mZi9hNDNjZmVkMjdjNDFlNGU2OGNkY1xuZnVuY3Rpb24gZmluZEluQXJyYXkoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGlmIChjYWxsYmFjay5hcHBseShjYWxsYmFjaywgW2FycmF5W2ldLCBpLCBhcnJheV0pKSByZXR1cm4gYXJyYXlbaV07XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hlc1NlbGVjdG9yKGVsLCBzZWxlY3Rvcikge1xuICB2YXIgbWV0aG9kID0gZmluZEluQXJyYXkoW1xuICAgICdtYXRjaGVzJyxcbiAgICAnd2Via2l0TWF0Y2hlc1NlbGVjdG9yJyxcbiAgICAnbW96TWF0Y2hlc1NlbGVjdG9yJyxcbiAgICAnbXNNYXRjaGVzU2VsZWN0b3InLFxuICAgICdvTWF0Y2hlc1NlbGVjdG9yJ1xuICBdLCBmdW5jdGlvbihtZXRob2Qpe1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKGVsW21ldGhvZF0pO1xuICB9KTtcblxuICByZXR1cm4gZWxbbWV0aG9kXS5jYWxsKGVsLCBzZWxlY3Rvcik7XG59XG5cbi8vIEBjcmVkaXRzOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ4MTcwMjkvd2hhdHMtdGhlLWJlc3Qtd2F5LXRvLWRldGVjdC1hLXRvdWNoLXNjcmVlbi1kZXZpY2UtdXNpbmctamF2YXNjcmlwdC80ODE5ODg2IzQ4MTk4ODZcbi8qIENvbmRpdGlvbmFsIHRvIGZpeCBub2RlIHNlcnZlciBzaWRlIHJlbmRlcmluZyBvZiBjb21wb25lbnQgKi9cbmlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIERvIE5vZGUgU3R1ZmZcbiAgICB2YXIgaXNUb3VjaERldmljZSA9IGZhbHNlO1xufSBlbHNlIHtcbiAgICAvLyBEbyBCcm93c2VyIFN0dWZmXG4gICAgdmFyIGlzVG91Y2hEZXZpY2UgPSAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHwgLy8gd29ya3Mgb24gbW9zdCBicm93c2Vyc1xuICAgICAgICAgICAgICAgICAgICAgICAgJ29ubXNnZXN0dXJlY2hhbmdlJyBpbiB3aW5kb3c7IC8vIHdvcmtzIG9uIGllMTAgb24gbXMgc3VyZmFjZVxuXG59XG5cbi8vIGxvb2sgOjpoYW5kbGVEcmFnU3RhcnRcbi8vZnVuY3Rpb24gaXNNdWx0aVRvdWNoKGUpIHtcbi8vICByZXR1cm4gZS50b3VjaGVzICYmIEFycmF5LmlzQXJyYXkoZS50b3VjaGVzKSAmJiBlLnRvdWNoZXMubGVuZ3RoID4gMVxuLy99XG5cbi8qKlxuICogc2ltcGxlIGFic3RyYWN0aW9uIGZvciBkcmFnZ2luZyBldmVudHMgbmFtZXNcbiAqICovXG52YXIgZHJhZ0V2ZW50Rm9yID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGV2ZW50c0ZvciA9IHtcbiAgICB0b3VjaDoge1xuICAgICAgc3RhcnQ6ICd0b3VjaHN0YXJ0JyxcbiAgICAgIG1vdmU6ICd0b3VjaG1vdmUnLFxuICAgICAgZW5kOiAndG91Y2hlbmQnXG4gICAgfSxcbiAgICBtb3VzZToge1xuICAgICAgc3RhcnQ6ICdtb3VzZWRvd24nLFxuICAgICAgbW92ZTogJ21vdXNlbW92ZScsXG4gICAgICBlbmQ6ICdtb3VzZXVwJ1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGV2ZW50c0Zvcltpc1RvdWNoRGV2aWNlID8gJ3RvdWNoJyA6ICdtb3VzZSddO1xufSkoKTtcblxuLyoqXG4gKiBnZXQge2NsaWVudFgsIGNsaWVudFl9IHBvc2l0aW9ucyBvZiBjb250cm9sXG4gKiAqL1xuZnVuY3Rpb24gZ2V0Q29udHJvbFBvc2l0aW9uKGUpIHtcbiAgdmFyIHBvc2l0aW9uID0gKGUudG91Y2hlcyAmJiBlLnRvdWNoZXNbMF0pIHx8IGU7XG4gIHJldHVybiB7XG4gICAgY2xpZW50WDogcG9zaXRpb24uY2xpZW50WCxcbiAgICBjbGllbnRZOiBwb3NpdGlvbi5jbGllbnRZXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFkZEV2ZW50KGVsLCBldmVudCwgaGFuZGxlcikge1xuICBpZiAoIWVsKSB7IHJldHVybjsgfVxuICBpZiAoZWwuYXR0YWNoRXZlbnQpIHtcbiAgICBlbC5hdHRhY2hFdmVudCgnb24nICsgZXZlbnQsIGhhbmRsZXIpO1xuICB9IGVsc2UgaWYgKGVsLmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVyLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBlbFsnb24nICsgZXZlbnRdID0gaGFuZGxlcjtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmVFdmVudChlbCwgZXZlbnQsIGhhbmRsZXIpIHtcbiAgaWYgKCFlbCkgeyByZXR1cm47IH1cbiAgaWYgKGVsLmRldGFjaEV2ZW50KSB7XG4gICAgZWwuZGV0YWNoRXZlbnQoJ29uJyArIGV2ZW50LCBoYW5kbGVyKTtcbiAgfSBlbHNlIGlmIChlbC5yZW1vdmVFdmVudExpc3RlbmVyKSB7XG4gICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgZWxbJ29uJyArIGV2ZW50XSA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gb3V0ZXJIZWlnaHQobm9kZSkge1xuICAvLyBUaGlzIGlzIGRlbGliZXJhdGVseSBleGNsdWRpbmcgbWFyZ2luIGZvciBvdXIgY2FsY3VsYXRpb25zLCBzaW5jZSB3ZSBhcmUgdXNpbmdcbiAgLy8gb2Zmc2V0VG9wIHdoaWNoIGlzIGluY2x1ZGluZyBtYXJnaW4uIFNlZSBnZXRCb3VuZFBvc2l0aW9uXG4gIHZhciBoZWlnaHQgPSBub2RlLmNsaWVudEhlaWdodDtcbiAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgaGVpZ2h0ICs9IGludChjb21wdXRlZFN0eWxlLmJvcmRlclRvcFdpZHRoKTtcbiAgaGVpZ2h0ICs9IGludChjb21wdXRlZFN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKTtcbiAgcmV0dXJuIGhlaWdodDtcbn1cblxuZnVuY3Rpb24gb3V0ZXJXaWR0aChub2RlKSB7XG4gIC8vIFRoaXMgaXMgZGVsaWJlcmF0ZWx5IGV4Y2x1ZGluZyBtYXJnaW4gZm9yIG91ciBjYWxjdWxhdGlvbnMsIHNpbmNlIHdlIGFyZSB1c2luZ1xuICAvLyBvZmZzZXRMZWZ0IHdoaWNoIGlzIGluY2x1ZGluZyBtYXJnaW4uIFNlZSBnZXRCb3VuZFBvc2l0aW9uXG4gIHZhciB3aWR0aCA9IG5vZGUuY2xpZW50V2lkdGg7XG4gIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gIHdpZHRoICs9IGludChjb21wdXRlZFN0eWxlLmJvcmRlckxlZnRXaWR0aCk7XG4gIHdpZHRoICs9IGludChjb21wdXRlZFN0eWxlLmJvcmRlclJpZ2h0V2lkdGgpO1xuICByZXR1cm4gd2lkdGg7XG59XG5mdW5jdGlvbiBpbm5lckhlaWdodChub2RlKSB7XG4gIHZhciBoZWlnaHQgPSBub2RlLmNsaWVudEhlaWdodDtcbiAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgaGVpZ2h0IC09IGludChjb21wdXRlZFN0eWxlLnBhZGRpbmdUb3ApO1xuICBoZWlnaHQgLT0gaW50KGNvbXB1dGVkU3R5bGUucGFkZGluZ0JvdHRvbSk7XG4gIHJldHVybiBoZWlnaHQ7XG59XG5cbmZ1bmN0aW9uIGlubmVyV2lkdGgobm9kZSkge1xuICB2YXIgd2lkdGggPSBub2RlLmNsaWVudFdpZHRoO1xuICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICB3aWR0aCAtPSBpbnQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nTGVmdCk7XG4gIHdpZHRoIC09IGludChjb21wdXRlZFN0eWxlLnBhZGRpbmdSaWdodCk7XG4gIHJldHVybiB3aWR0aDtcbn1cblxuZnVuY3Rpb24gaXNOdW0obnVtKSB7XG4gIHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4obnVtKTtcbn1cblxuZnVuY3Rpb24gaW50KGEpIHtcbiAgcmV0dXJuIHBhcnNlSW50KGEsIDEwKTtcbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRQb3NpdGlvbihkcmFnZ2FibGUsIGNsaWVudFgsIGNsaWVudFkpIHtcbiAgdmFyIGJvdW5kcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZHJhZ2dhYmxlLnByb3BzLmJvdW5kcykpO1xuICB2YXIgbm9kZSA9IGRyYWdnYWJsZS5nZXRET01Ob2RlKCk7XG4gIHZhciBwYXJlbnQgPSBub2RlLnBhcmVudE5vZGU7XG5cbiAgaWYgKGJvdW5kcyA9PT0gJ3BhcmVudCcpIHtcbiAgICB2YXIgbm9kZVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgdmFyIHBhcmVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICAvLyBDb21wdXRlIGJvdW5kcy4gVGhpcyBpcyBhIHBhaW4gd2l0aCBwYWRkaW5nIGFuZCBvZmZzZXRzIGJ1dCB0aGlzIGdldHMgaXQgZXhhY3RseSByaWdodC5cbiAgICBib3VuZHMgPSB7XG4gICAgICBsZWZ0OiAtbm9kZS5vZmZzZXRMZWZ0ICsgaW50KHBhcmVudFN0eWxlLnBhZGRpbmdMZWZ0KSArXG4gICAgICAgICAgICBpbnQobm9kZVN0eWxlLmJvcmRlckxlZnRXaWR0aCkgKyBpbnQobm9kZVN0eWxlLm1hcmdpbkxlZnQpLFxuICAgICAgdG9wOiAtbm9kZS5vZmZzZXRUb3AgKyBpbnQocGFyZW50U3R5bGUucGFkZGluZ1RvcCkgK1xuICAgICAgICAgICAgaW50KG5vZGVTdHlsZS5ib3JkZXJUb3BXaWR0aCkgKyBpbnQobm9kZVN0eWxlLm1hcmdpblRvcCksXG4gICAgICByaWdodDogaW5uZXJXaWR0aChwYXJlbnQpIC0gb3V0ZXJXaWR0aChub2RlKSAtIG5vZGUub2Zmc2V0TGVmdCxcbiAgICAgIGJvdHRvbTogaW5uZXJIZWlnaHQocGFyZW50KSAtIG91dGVySGVpZ2h0KG5vZGUpIC0gbm9kZS5vZmZzZXRUb3BcbiAgICB9O1xuICB9XG5cbiAgLy8gS2VlcCB4IGFuZCB5IGJlbG93IHJpZ2h0IGFuZCBib3R0b20gbGltaXRzLi4uXG4gIGlmIChpc051bShib3VuZHMucmlnaHQpKSBjbGllbnRYID0gTWF0aC5taW4oY2xpZW50WCwgYm91bmRzLnJpZ2h0KTtcbiAgaWYgKGlzTnVtKGJvdW5kcy5ib3R0b20pKSBjbGllbnRZID0gTWF0aC5taW4oY2xpZW50WSwgYm91bmRzLmJvdHRvbSk7XG5cbiAgLy8gQnV0IGFib3ZlIGxlZnQgYW5kIHRvcCBsaW1pdHMuXG4gIGlmIChpc051bShib3VuZHMubGVmdCkpIGNsaWVudFggPSBNYXRoLm1heChjbGllbnRYLCBib3VuZHMubGVmdCk7XG4gIGlmIChpc051bShib3VuZHMudG9wKSkgY2xpZW50WSA9IE1hdGgubWF4KGNsaWVudFksIGJvdW5kcy50b3ApO1xuXG4gIHJldHVybiBbY2xpZW50WCwgY2xpZW50WV07XG59XG5cbmZ1bmN0aW9uIHNuYXBUb0dyaWQoZ3JpZCwgcGVuZGluZ1gsIHBlbmRpbmdZKSB7XG4gIHZhciB4ID0gTWF0aC5yb3VuZChwZW5kaW5nWCAvIGdyaWRbMF0pICogZ3JpZFswXTtcbiAgdmFyIHkgPSBNYXRoLnJvdW5kKHBlbmRpbmdZIC8gZ3JpZFsxXSkgKiBncmlkWzFdO1xuICByZXR1cm4gW3gsIHldO1xufVxuXG4vLyBVc2VmdWwgZm9yIHByZXZlbnRpbmcgYmx1ZSBoaWdobGlnaHRzIGFsbCBvdmVyIGV2ZXJ5dGhpbmcgd2hlbiBkcmFnZ2luZy5cbnZhciB1c2VyU2VsZWN0U3R5bGUgPSAnO3VzZXItc2VsZWN0OiBub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7JyArXG4gICctby11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOyc7XG5cbmZ1bmN0aW9uIGFkZFVzZXJTZWxlY3RTdHlsZXMoZHJhZ2dhYmxlKSB7XG4gIGlmICghZHJhZ2dhYmxlLnByb3BzLmVuYWJsZVVzZXJTZWxlY3RIYWNrKSByZXR1cm47XG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdzdHlsZScpIHx8ICcnO1xuICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZSArIHVzZXJTZWxlY3RTdHlsZSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVVzZXJTZWxlY3RTdHlsZXMoZHJhZ2dhYmxlKSB7XG4gIGlmICghZHJhZ2dhYmxlLnByb3BzLmVuYWJsZVVzZXJTZWxlY3RIYWNrKSByZXR1cm47XG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdzdHlsZScpIHx8ICcnO1xuICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZS5yZXBsYWNlKHVzZXJTZWxlY3RTdHlsZSwgJycpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ1NTVHJhbnNmb3JtKHN0eWxlKSB7XG4gIC8vIFJlcGxhY2UgdW5pdGxlc3MgaXRlbXMgd2l0aCBweFxuICB2YXIgeCA9IHN0eWxlLnggKyAncHgnO1xuICB2YXIgeSA9IHN0eWxlLnkgKyAncHgnO1xuICByZXR1cm4ge1xuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgnICsgeCArICcsJyArIHkgKyAnKScsXG4gICAgV2Via2l0VHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyB4ICsgJywnICsgeSArICcpJyxcbiAgICBPVHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyB4ICsgJywnICsgeSArICcpJyxcbiAgICBtc1RyYW5zZm9ybTogJ3RyYW5zbGF0ZSgnICsgeCArICcsJyArIHkgKyAnKScsXG4gICAgTW96VHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyB4ICsgJywnICsgeSArICcpJ1xuICB9O1xufVxuXG5cbi8vXG4vLyBFbmQgSGVscGVycy5cbi8vXG5cbi8vXG4vLyBEZWZpbmUgPERyYWdnYWJsZT5cbi8vXG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICBkaXNwbGF5TmFtZTogJ0RyYWdnYWJsZScsXG5cbiAgcHJvcFR5cGVzOiB7XG4gICAgLyoqXG4gICAgICogYGF4aXNgIGRldGVybWluZXMgd2hpY2ggYXhpcyB0aGUgZHJhZ2dhYmxlIGNhbiBtb3ZlLlxuICAgICAqXG4gICAgICogJ2JvdGgnIGFsbG93cyBtb3ZlbWVudCBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkuXG4gICAgICogJ3gnIGxpbWl0cyBtb3ZlbWVudCB0byBob3Jpem9udGFsIGF4aXMuXG4gICAgICogJ3knIGxpbWl0cyBtb3ZlbWVudCB0byB2ZXJ0aWNhbCBheGlzLlxuICAgICAqXG4gICAgICogRGVmYXVsdHMgdG8gJ2JvdGgnLlxuICAgICAqL1xuICAgIGF4aXM6IFJlYWN0LlByb3BUeXBlcy5vbmVPZihbJ2JvdGgnLCAneCcsICd5J10pLFxuXG4gICAgLyoqXG4gICAgICogYGJvdW5kc2AgZGV0ZXJtaW5lcyB0aGUgcmFuZ2Ugb2YgbW92ZW1lbnQgYXZhaWxhYmxlIHRvIHRoZSBlbGVtZW50LlxuICAgICAqIEF2YWlsYWJsZSB2YWx1ZXMgYXJlOlxuICAgICAqXG4gICAgICogJ3BhcmVudCcgcmVzdHJpY3RzIG1vdmVtZW50IHdpdGhpbiB0aGUgRHJhZ2dhYmxlJ3MgcGFyZW50IG5vZGUuXG4gICAgICpcbiAgICAgKiBBbHRlcm5hdGl2ZWx5LCBwYXNzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcywgYWxsIG9mIHdoaWNoIGFyZSBvcHRpb25hbDpcbiAgICAgKlxuICAgICAqIHtsZWZ0OiBMRUZUX0JPVU5ELCByaWdodDogUklHSFRfQk9VTkQsIGJvdHRvbTogQk9UVE9NX0JPVU5ELCB0b3A6IFRPUF9CT1VORH1cbiAgICAgKlxuICAgICAqIEFsbCB2YWx1ZXMgYXJlIGluIHB4LlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqICAgdmFyIEFwcCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICAgKiAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgKiAgICAgICAgIHJldHVybiAoXG4gICAgICogICAgICAgICAgICA8RHJhZ2dhYmxlIGJvdW5kcz17e3JpZ2h0OiAzMDAsIGJvdHRvbTogMzAwfX0+XG4gICAgICogICAgICAgICAgICAgIDxkaXY+Q29udGVudDwvZGl2PlxuICAgICAqICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgKiAgICAgICAgICk7XG4gICAgICogICAgICAgfVxuICAgICAqICAgfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgYm91bmRzOiBSZWFjdC5Qcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFJlYWN0LlByb3BUeXBlcy5zaGFwZSh7XG4gICAgICAgIGxlZnQ6IFJlYWN0LlByb3BUeXBlcy5OdW1iZXIsXG4gICAgICAgIHJpZ2h0OiBSZWFjdC5Qcm9wVHlwZXMuTnVtYmVyLFxuICAgICAgICB0b3A6IFJlYWN0LlByb3BUeXBlcy5OdW1iZXIsXG4gICAgICAgIGJvdHRvbTogUmVhY3QuUHJvcFR5cGVzLk51bWJlclxuICAgICAgfSksXG4gICAgICBSZWFjdC5Qcm9wVHlwZXMub25lT2YoWydwYXJlbnQnLCBmYWxzZV0pXG4gICAgXSksXG5cbiAgICAvKipcbiAgICAgKiBCeSBkZWZhdWx0LCB3ZSBhZGQgJ3VzZXItc2VsZWN0Om5vbmUnIGF0dHJpYnV0ZXMgdG8gdGhlIGRvY3VtZW50IGJvZHlcbiAgICAgKiB0byBwcmV2ZW50IHVnbHkgdGV4dCBzZWxlY3Rpb24gZHVyaW5nIGRyYWcuIElmIHRoaXMgaXMgY2F1c2luZyBwcm9ibGVtc1xuICAgICAqIGZvciB5b3VyIGFwcCwgc2V0IHRoaXMgdG8gYGZhbHNlYC5cbiAgICAgKi9cbiAgICBlbmFibGVVc2VyU2VsZWN0SGFjazogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAvKipcbiAgICAgKiBgaGFuZGxlYCBzcGVjaWZpZXMgYSBzZWxlY3RvciB0byBiZSB1c2VkIGFzIHRoZSBoYW5kbGUgdGhhdCBpbml0aWF0ZXMgZHJhZy5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiAgIHZhciBBcHAgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgICogICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICogICAgICAgICByZXR1cm4gKFxuICAgICAqICAgICAgICAgICAgPERyYWdnYWJsZSBoYW5kbGU9XCIuaGFuZGxlXCI+XG4gICAgICogICAgICAgICAgICAgIDxkaXY+XG4gICAgICogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhhbmRsZVwiPkNsaWNrIG1lIHRvIGRyYWc8L2Rpdj5cbiAgICAgKiAgICAgICAgICAgICAgICAgIDxkaXY+VGhpcyBpcyBzb21lIG90aGVyIGNvbnRlbnQ8L2Rpdj5cbiAgICAgKiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICogICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAqICAgICAgICAgKTtcbiAgICAgKiAgICAgICB9XG4gICAgICogICB9KTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBoYW5kbGU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBgY2FuY2VsYCBzcGVjaWZpZXMgYSBzZWxlY3RvciB0byBiZSB1c2VkIHRvIHByZXZlbnQgZHJhZyBpbml0aWFsaXphdGlvbi5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiAgIHZhciBBcHAgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgICogICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICogICAgICAgICAgIHJldHVybihcbiAgICAgKiAgICAgICAgICAgICAgIDxEcmFnZ2FibGUgY2FuY2VsPVwiLmNhbmNlbFwiPlxuICAgICAqICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhbmNlbFwiPllvdSBjYW4ndCBkcmFnIGZyb20gaGVyZTwvZGl2PlxuICAgICAqICAgICAgICAgICAgPGRpdj5EcmFnZ2luZyBoZXJlIHdvcmtzIGZpbmU8L2Rpdj5cbiAgICAgKiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgKiAgICAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAqICAgICAgICAgICApO1xuICAgICAqICAgICAgIH1cbiAgICAgKiAgIH0pO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGNhbmNlbDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIGBncmlkYCBzcGVjaWZpZXMgdGhlIHggYW5kIHkgdGhhdCBkcmFnZ2luZyBzaG91bGQgc25hcCB0by5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiAgIHZhciBBcHAgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgICogICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICogICAgICAgICAgIHJldHVybiAoXG4gICAgICogICAgICAgICAgICAgICA8RHJhZ2dhYmxlIGdyaWQ9e1syNSwgMjVdfT5cbiAgICAgKiAgICAgICAgICAgICAgICAgICA8ZGl2Pkkgc25hcCB0byBhIDI1IHggMjUgZ3JpZDwvZGl2PlxuICAgICAqICAgICAgICAgICAgICAgPC9EcmFnZ2FibGU+XG4gICAgICogICAgICAgICAgICk7XG4gICAgICogICAgICAgfVxuICAgICAqICAgfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgZ3JpZDogUmVhY3QuUHJvcFR5cGVzLmFycmF5T2YoUmVhY3QuUHJvcFR5cGVzLm51bWJlciksXG5cbiAgICAvKipcbiAgICAgKiBgc3RhcnRgIHNwZWNpZmllcyB0aGUgeCBhbmQgeSB0aGF0IHRoZSBkcmFnZ2VkIGl0ZW0gc2hvdWxkIHN0YXJ0IGF0XG4gICAgICpcbiAgICAgKiBFeGFtcGxlOlxuICAgICAqXG4gICAgICogYGBganN4XG4gICAgICogICAgICB2YXIgQXBwID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgICAqICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xuICAgICAqICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAqICAgICAgICAgICAgICAgICAgPERyYWdnYWJsZSBzdGFydD17e3g6IDI1LCB5OiAyNX19PlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgIDxkaXY+SSBzdGFydCB3aXRoIHRyYW5zZm9ybVg6IDI1cHggYW5kIHRyYW5zZm9ybVk6IDI1cHg7PC9kaXY+XG4gICAgICogICAgICAgICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgKiAgICAgICAgICAgICAgKTtcbiAgICAgKiAgICAgICAgICB9XG4gICAgICogICAgICB9KTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBzdGFydDogUmVhY3QuUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgICB5OiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyXG4gICAgfSksXG5cbiAgICAvKipcbiAgICAgKiBgbW92ZU9uU3RhcnRDaGFuZ2VgLCBpZiB0cnVlIChkZWZhdWx0IGZhbHNlKSB3aWxsIG1vdmUgdGhlIGVsZW1lbnQgaWYgdGhlIGBzdGFydGBcbiAgICAgKiBwcm9wZXJ0eSBjaGFuZ2VzLlxuICAgICAqL1xuICAgIG1vdmVPblN0YXJ0Q2hhbmdlOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcblxuXG4gICAgLyoqXG4gICAgICogYHpJbmRleGAgc3BlY2lmaWVzIHRoZSB6SW5kZXggdG8gdXNlIHdoaWxlIGRyYWdnaW5nLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqICAgdmFyIEFwcCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICAgKiAgICAgICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgKiAgICAgICAgICAgcmV0dXJuIChcbiAgICAgKiAgICAgICAgICAgICAgIDxEcmFnZ2FibGUgekluZGV4PXsxMDB9PlxuICAgICAqICAgICAgICAgICAgICAgICAgIDxkaXY+SSBoYXZlIGEgekluZGV4PC9kaXY+XG4gICAgICogICAgICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgKiAgICAgICAgICAgKTtcbiAgICAgKiAgICAgICB9XG4gICAgICogICB9KTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICB6SW5kZXg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBkcmFnZ2luZyBzdGFydHMuXG4gICAgICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBib29sZWFuIGZhbHNlLCBkcmFnZ2luZyB3aWxsIGJlIGNhbmNlbGVkLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGpzXG4gICAgICogIGZ1bmN0aW9uIChldmVudCwgdWkpIHt9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgZXZlbnRgIGlzIHRoZSBFdmVudCB0aGF0IHdhcyB0cmlnZ2VyZWQuXG4gICAgICogYHVpYCBpcyBhbiBvYmplY3Q6XG4gICAgICpcbiAgICAgKiBgYGBqc1xuICAgICAqICB7XG4gICAgICogICAgcG9zaXRpb246IHt0b3A6IDAsIGxlZnQ6IDB9XG4gICAgICogIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBvblN0YXJ0OiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGlsZSBkcmFnZ2luZy5cbiAgICAgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGJvb2xlYW4gZmFsc2UsIGRyYWdnaW5nIHdpbGwgYmUgY2FuY2VsZWQuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlOlxuICAgICAqXG4gICAgICogYGBganNcbiAgICAgKiAgZnVuY3Rpb24gKGV2ZW50LCB1aSkge31cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBldmVudGAgaXMgdGhlIEV2ZW50IHRoYXQgd2FzIHRyaWdnZXJlZC5cbiAgICAgKiBgdWlgIGlzIGFuIG9iamVjdDpcbiAgICAgKlxuICAgICAqIGBgYGpzXG4gICAgICogIHtcbiAgICAgKiAgICBwb3NpdGlvbjoge3RvcDogMCwgbGVmdDogMH1cbiAgICAgKiAgfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIG9uRHJhZzogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBkcmFnZ2luZyBzdG9wcy5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBqc1xuICAgICAqICBmdW5jdGlvbiAoZXZlbnQsIHVpKSB7fVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGV2ZW50YCBpcyB0aGUgRXZlbnQgdGhhdCB3YXMgdHJpZ2dlcmVkLlxuICAgICAqIGB1aWAgaXMgYW4gb2JqZWN0OlxuICAgICAqXG4gICAgICogYGBganNcbiAgICAgKiAge1xuICAgICAqICAgIHBvc2l0aW9uOiB7dG9wOiAwLCBsZWZ0OiAwfVxuICAgICAqICB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgb25TdG9wOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcblxuICAgIC8qKlxuICAgICAqIEEgd29ya2Fyb3VuZCBvcHRpb24gd2hpY2ggY2FuIGJlIHBhc3NlZCBpZiBvbk1vdXNlRG93biBuZWVkcyB0byBiZSBhY2Nlc3NlZCxcbiAgICAgKiBzaW5jZSBpdCdsbCBhbHdheXMgYmUgYmxvY2tlZCAoZHVlIHRvIHRoYXQgdGhlcmUncyBpbnRlcm5hbCB1c2Ugb2Ygb25Nb3VzZURvd24pXG4gICAgICovXG4gICAgb25Nb3VzZURvd246IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uKG5ld1Byb3BzKSB7XG4gICAgLy8gUmVhY3QgdG8gY2hhbmdlcyBpbiB0aGUgJ3N0YXJ0JyBwYXJhbS5cbiAgICBpZiAobmV3UHJvcHMubW92ZU9uU3RhcnRDaGFuZ2UgJiYgbmV3UHJvcHMuc3RhcnQpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUodGhpcy5nZXRJbml0aWFsU3RhdGUobmV3UHJvcHMpKTtcbiAgICB9XG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uKCkge1xuICAgIC8vIFJlbW92ZSBhbnkgbGVmdG92ZXIgZXZlbnQgaGFuZGxlcnNcbiAgICByZW1vdmVFdmVudCh3aW5kb3csIGRyYWdFdmVudEZvclsnbW92ZSddLCB0aGlzLmhhbmRsZURyYWcpO1xuICAgIHJlbW92ZUV2ZW50KHdpbmRvdywgZHJhZ0V2ZW50Rm9yWydlbmQnXSwgdGhpcy5oYW5kbGVEcmFnRW5kKTtcbiAgICByZW1vdmVVc2VyU2VsZWN0U3R5bGVzKHRoaXMpO1xuICB9LFxuXG4gIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBheGlzOiAnYm90aCcsXG4gICAgICBib3VuZHM6IGZhbHNlLFxuICAgICAgaGFuZGxlOiBudWxsLFxuICAgICAgY2FuY2VsOiBudWxsLFxuICAgICAgZ3JpZDogbnVsbCxcbiAgICAgIG1vdmVPblN0YXJ0Q2hhbmdlOiBmYWxzZSxcbiAgICAgIHN0YXJ0OiB7eDogMCwgeTogMH0sXG4gICAgICB6SW5kZXg6IE5hTixcbiAgICAgIGVuYWJsZVVzZXJTZWxlY3RIYWNrOiB0cnVlLFxuICAgICAgb25TdGFydDogZW1wdHlGdW5jdGlvbixcbiAgICAgIG9uRHJhZzogZW1wdHlGdW5jdGlvbixcbiAgICAgIG9uU3RvcDogZW1wdHlGdW5jdGlvbixcbiAgICAgIG9uTW91c2VEb3duOiBlbXB0eUZ1bmN0aW9uXG4gICAgfTtcbiAgfSxcblxuICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIC8vIEhhbmRsZSBjYWxsIGZyb20gQ1dSUFxuICAgIHByb3BzID0gcHJvcHMgfHwgdGhpcy5wcm9wcztcbiAgICByZXR1cm4ge1xuICAgICAgLy8gV2hldGhlciBvciBub3Qgd2UgYXJlIGN1cnJlbnRseSBkcmFnZ2luZy5cbiAgICAgIGRyYWdnaW5nOiBmYWxzZSxcblxuICAgICAgLy8gT2Zmc2V0IGJldHdlZW4gc3RhcnQgdG9wL2xlZnQgYW5kIG1vdXNlIHRvcC9sZWZ0IHdoaWxlIGRyYWdnaW5nLlxuICAgICAgb2Zmc2V0WDogMCwgb2Zmc2V0WTogMCxcblxuICAgICAgLy8gQ3VycmVudCB0cmFuc2Zvcm0geCBhbmQgeS5cbiAgICAgIGNsaWVudFg6IHByb3BzLnN0YXJ0LngsIGNsaWVudFk6IHByb3BzLnN0YXJ0LnlcbiAgICB9O1xuICB9LFxuXG4gIGhhbmRsZURyYWdTdGFydDogZnVuY3Rpb24gKGUpIHtcbiAgICAvLyB0b2RvOiB3cml0ZSByaWdodCBpbXBsZW1lbnRhdGlvbiB0byBwcmV2ZW50IG11bHRpdG91Y2ggZHJhZ1xuICAgIC8vIHByZXZlbnQgbXVsdGktdG91Y2ggZXZlbnRzXG4gICAgLy8gaWYgKGlzTXVsdGlUb3VjaChlKSkge1xuICAgIC8vICAgICB0aGlzLmhhbmRsZURyYWdFbmQuYXBwbHkoZSwgYXJndW1lbnRzKTtcbiAgICAvLyAgICAgcmV0dXJuXG4gICAgLy8gfVxuXG4gICAgLy8gTWFrZSBpdCBwb3NzaWJsZSB0byBhdHRhY2ggZXZlbnQgaGFuZGxlcnMgb24gdG9wIG9mIHRoaXMgb25lXG4gICAgdGhpcy5wcm9wcy5vbk1vdXNlRG93bihlKTtcblxuICAgIC8vIFNob3J0IGNpcmN1aXQgaWYgaGFuZGxlIG9yIGNhbmNlbCBwcm9wIHdhcyBwcm92aWRlZCBhbmQgc2VsZWN0b3IgZG9lc24ndCBtYXRjaFxuICAgIGlmICgodGhpcy5wcm9wcy5oYW5kbGUgJiYgIW1hdGNoZXNTZWxlY3RvcihlLnRhcmdldCwgdGhpcy5wcm9wcy5oYW5kbGUpKSB8fFxuICAgICAgKHRoaXMucHJvcHMuY2FuY2VsICYmIG1hdGNoZXNTZWxlY3RvcihlLnRhcmdldCwgdGhpcy5wcm9wcy5jYW5jZWwpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENhbGwgZXZlbnQgaGFuZGxlci4gSWYgaXQgcmV0dXJucyBleHBsaWNpdCBmYWxzZSwgY2FuY2VsLlxuICAgIHZhciBzaG91bGRTdGFydCA9IHRoaXMucHJvcHMub25TdGFydChlLCBjcmVhdGVVSUV2ZW50KHRoaXMpKTtcbiAgICBpZiAoc2hvdWxkU3RhcnQgPT09IGZhbHNlKSByZXR1cm47XG5cbiAgICB2YXIgZHJhZ1BvaW50ID0gZ2V0Q29udHJvbFBvc2l0aW9uKGUpO1xuXG4gICAgLy8gQWRkIGEgc3R5bGUgdG8gdGhlIGJvZHkgdG8gZGlzYWJsZSB1c2VyLXNlbGVjdC4gVGhpcyBwcmV2ZW50cyB0ZXh0IGZyb21cbiAgICAvLyBiZWluZyBzZWxlY3RlZCBhbGwgb3ZlciB0aGUgcGFnZS5cbiAgICBhZGRVc2VyU2VsZWN0U3R5bGVzKHRoaXMpO1xuXG4gICAgLy8gSW5pdGlhdGUgZHJhZ2dpbmcuIFNldCB0aGUgY3VycmVudCB4IGFuZCB5IGFzIG9mZnNldHNcbiAgICAvLyBzbyB3ZSBrbm93IGhvdyBtdWNoIHdlJ3ZlIG1vdmVkIGR1cmluZyB0aGUgZHJhZy4gVGhpcyBhbGxvd3MgdXNcbiAgICAvLyB0byBkcmFnIGVsZW1lbnRzIGFyb3VuZCBldmVuIGlmIHRoZXkgaGF2ZSBiZWVuIG1vdmVkLCB3aXRob3V0IGlzc3VlLlxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZHJhZ2dpbmc6IHRydWUsXG4gICAgICBvZmZzZXRYOiBkcmFnUG9pbnQuY2xpZW50WCAtIHRoaXMuc3RhdGUuY2xpZW50WCxcbiAgICAgIG9mZnNldFk6IGRyYWdQb2ludC5jbGllbnRZIC0gdGhpcy5zdGF0ZS5jbGllbnRZXG4gICAgfSk7XG5cblxuICAgIC8vIEFkZCBldmVudCBoYW5kbGVyc1xuICAgIGFkZEV2ZW50KHdpbmRvdywgZHJhZ0V2ZW50Rm9yWydtb3ZlJ10sIHRoaXMuaGFuZGxlRHJhZyk7XG4gICAgYWRkRXZlbnQod2luZG93LCBkcmFnRXZlbnRGb3JbJ2VuZCddLCB0aGlzLmhhbmRsZURyYWdFbmQpO1xuICB9LFxuXG4gIGhhbmRsZURyYWdFbmQ6IGZ1bmN0aW9uIChlKSB7XG4gICAgLy8gU2hvcnQgY2lyY3VpdCBpZiBub3QgY3VycmVudGx5IGRyYWdnaW5nXG4gICAgaWYgKCF0aGlzLnN0YXRlLmRyYWdnaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmVtb3ZlVXNlclNlbGVjdFN0eWxlcyh0aGlzKTtcblxuICAgIC8vIFR1cm4gb2ZmIGRyYWdnaW5nXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBkcmFnZ2luZzogZmFsc2VcbiAgICB9KTtcblxuICAgIC8vIENhbGwgZXZlbnQgaGFuZGxlclxuICAgIHRoaXMucHJvcHMub25TdG9wKGUsIGNyZWF0ZVVJRXZlbnQodGhpcykpO1xuXG4gICAgLy8gUmVtb3ZlIGV2ZW50IGhhbmRsZXJzXG4gICAgcmVtb3ZlRXZlbnQod2luZG93LCBkcmFnRXZlbnRGb3JbJ21vdmUnXSwgdGhpcy5oYW5kbGVEcmFnKTtcbiAgICByZW1vdmVFdmVudCh3aW5kb3csIGRyYWdFdmVudEZvclsnZW5kJ10sIHRoaXMuaGFuZGxlRHJhZ0VuZCk7XG4gIH0sXG5cbiAgaGFuZGxlRHJhZzogZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgZHJhZ1BvaW50ID0gZ2V0Q29udHJvbFBvc2l0aW9uKGUpO1xuXG4gICAgLy8gQ2FsY3VsYXRlIFggYW5kIFlcbiAgICB2YXIgY2xpZW50WCA9IGRyYWdQb2ludC5jbGllbnRYIC0gdGhpcy5zdGF0ZS5vZmZzZXRYO1xuICAgIHZhciBjbGllbnRZID0gZHJhZ1BvaW50LmNsaWVudFkgLSB0aGlzLnN0YXRlLm9mZnNldFk7XG5cbiAgICAvLyBTbmFwIHRvIGdyaWQgaWYgcHJvcCBoYXMgYmVlbiBwcm92aWRlZFxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvcHMuZ3JpZCkpIHtcbiAgICAgIHZhciBjb29yZHMgPSBzbmFwVG9HcmlkKHRoaXMucHJvcHMuZ3JpZCwgY2xpZW50WCwgY2xpZW50WSk7XG4gICAgICBjbGllbnRYID0gY29vcmRzWzBdLCBjbGllbnRZID0gY29vcmRzWzFdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmJvdW5kcykge1xuICAgICAgdmFyIHBvcyA9IGdldEJvdW5kUG9zaXRpb24odGhpcywgY2xpZW50WCwgY2xpZW50WSk7XG4gICAgICBjbGllbnRYID0gcG9zWzBdLCBjbGllbnRZID0gcG9zWzFdO1xuICAgIH1cblxuICAgIC8vIENhbGwgZXZlbnQgaGFuZGxlci4gSWYgaXQgcmV0dXJucyBleHBsaWNpdCBmYWxzZSwgY2FuY2VsLlxuICAgIHZhciBzaG91bGRVcGRhdGUgPSB0aGlzLnByb3BzLm9uRHJhZyhlLCBjcmVhdGVVSUV2ZW50KHRoaXMpKTtcbiAgICBpZiAoc2hvdWxkVXBkYXRlID09PSBmYWxzZSkgcmV0dXJuIHRoaXMuaGFuZGxlRHJhZ0VuZCgpO1xuXG4gICAgLy8gVXBkYXRlIHRyYW5zZm9ybVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgY2xpZW50WDogY2xpZW50WCxcbiAgICAgIGNsaWVudFk6IGNsaWVudFlcbiAgICB9KTtcbiAgfSxcblxuICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAvLyBDcmVhdGUgc3R5bGUgb2JqZWN0LiBXZSBleHRlbmQgZnJvbSBleGlzdGluZyBzdHlsZXMgc28gd2UgZG9uJ3RcbiAgICAvLyByZW1vdmUgYW55dGhpbmcgYWxyZWFkeSBzZXQgKGxpa2UgYmFja2dyb3VuZCwgY29sb3IsIGV0YykuXG4gICAgdmFyIGNoaWxkU3R5bGUgPSB0aGlzLnByb3BzLmNoaWxkcmVuLnByb3BzLnN0eWxlIHx8IHt9O1xuXG4gICAgLy8gQWRkIGEgQ1NTIHRyYW5zZm9ybSB0byBtb3ZlIHRoZSBlbGVtZW50IGFyb3VuZC4gVGhpcyBhbGxvd3MgdXMgdG8gbW92ZSB0aGUgZWxlbWVudCBhcm91bmRcbiAgICAvLyB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IHdoZXRoZXIgb3Igbm90IGl0IGlzIHJlbGF0aXZlbHkgb3IgYWJzb2x1dGVseSBwb3NpdGlvbmVkLlxuICAgIC8vIElmIHRoZSBpdGVtIHlvdSBhcmUgZHJhZ2dpbmcgYWxyZWFkeSBoYXMgYSB0cmFuc2Zvcm0gc2V0LCB3cmFwIGl0IGluIGEgPHNwYW4+IHNvIDxEcmFnZ2FibGU+XG4gICAgLy8gaGFzIGEgY2xlYW4gc2xhdGUuXG4gICAgdmFyIHRyYW5zZm9ybSA9IGNyZWF0ZUNTU1RyYW5zZm9ybSh7XG4gICAgICAvLyBTZXQgbGVmdCBpZiBob3Jpem9udGFsIGRyYWcgaXMgZW5hYmxlZFxuICAgICAgeDogY2FuRHJhZ1godGhpcykgP1xuICAgICAgICB0aGlzLnN0YXRlLmNsaWVudFggOlxuICAgICAgICAwLFxuXG4gICAgICAvLyBTZXQgdG9wIGlmIHZlcnRpY2FsIGRyYWcgaXMgZW5hYmxlZFxuICAgICAgeTogY2FuRHJhZ1kodGhpcykgP1xuICAgICAgICB0aGlzLnN0YXRlLmNsaWVudFkgOlxuICAgICAgICAwXG4gICAgfSk7XG4gICAgdmFyIHN0eWxlID0gYXNzaWduKHt9LCBjaGlsZFN0eWxlLCB0cmFuc2Zvcm0pO1xuXG4gICAgLy8gU2V0IHpJbmRleCBpZiBjdXJyZW50bHkgZHJhZ2dpbmcgYW5kIHByb3AgaGFzIGJlZW4gcHJvdmlkZWRcbiAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiAhaXNOYU4odGhpcy5wcm9wcy56SW5kZXgpKSB7XG4gICAgICBzdHlsZS56SW5kZXggPSB0aGlzLnByb3BzLnpJbmRleDtcbiAgICB9XG5cbiAgICB2YXIgY2xhc3NOYW1lID0gY2xhc3NOYW1lcygodGhpcy5wcm9wcy5jaGlsZHJlbi5wcm9wcy5jbGFzc05hbWUgfHwgJycpLCAncmVhY3QtZHJhZ2dhYmxlJywge1xuICAgICAgJ3JlYWN0LWRyYWdnYWJsZS1kcmFnZ2luZyc6IHRoaXMuc3RhdGUuZHJhZ2dpbmcsXG4gICAgICAncmVhY3QtZHJhZ2dhYmxlLWRyYWdnZWQnOiB0aGlzLnN0YXRlLmRyYWdnZWRcbiAgICB9KTtcblxuICAgIC8vIFJldXNlIHRoZSBjaGlsZCBwcm92aWRlZFxuICAgIC8vIFRoaXMgbWFrZXMgaXQgZmxleGlibGUgdG8gdXNlIHdoYXRldmVyIGVsZW1lbnQgaXMgd2FudGVkIChkaXYsIHVsLCBldGMpXG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChSZWFjdC5DaGlsZHJlbi5vbmx5KHRoaXMucHJvcHMuY2hpbGRyZW4pLCB7XG4gICAgICBzdHlsZTogc3R5bGUsXG4gICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcblxuICAgICAgb25Nb3VzZURvd246IHRoaXMuaGFuZGxlRHJhZ1N0YXJ0LFxuICAgICAgb25Ub3VjaFN0YXJ0OiBmdW5jdGlvbihldil7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgZm9yIHNjcm9sbFxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVEcmFnU3RhcnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH0uYmluZCh0aGlzKSxcblxuICAgICAgb25Nb3VzZVVwOiB0aGlzLmhhbmRsZURyYWdFbmQsXG4gICAgICBvblRvdWNoRW5kOiB0aGlzLmhhbmRsZURyYWdFbmRcbiAgICB9KTtcbiAgfVxufSk7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuL2xpYi9kcmFnZ2FibGUuanNcbiAqKi8iLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogZXh0ZXJuYWwgXCJSZWFjdFwiXG4gKiogbW9kdWxlIGlkID0gMlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBUb09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PSBudWxsKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIGtleXM7XG5cdHZhciB0byA9IFRvT2JqZWN0KHRhcmdldCk7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gYXJndW1lbnRzW3NdO1xuXHRcdGtleXMgPSBPYmplY3Qua2V5cyhPYmplY3QoZnJvbSkpO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR0b1trZXlzW2ldXSA9IGZyb21ba2V5c1tpXV07XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4vfi9vYmplY3QtYXNzaWduL2luZGV4LmpzXG4gKiovIiwiLyohXG4gIENvcHlyaWdodCAoYykgMjAxNSBKZWQgV2F0c29uLlxuICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCksIHNlZVxuICBodHRwOi8vamVkd2F0c29uLmdpdGh1Yi5pby9jbGFzc25hbWVzXG4qL1xuXG5mdW5jdGlvbiBjbGFzc05hbWVzKCkge1xuXHR2YXIgY2xhc3NlcyA9ICcnO1xuXHR2YXIgYXJnO1xuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0YXJnID0gYXJndW1lbnRzW2ldO1xuXHRcdGlmICghYXJnKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRpZiAoJ3N0cmluZycgPT09IHR5cGVvZiBhcmcgfHwgJ251bWJlcicgPT09IHR5cGVvZiBhcmcpIHtcblx0XHRcdGNsYXNzZXMgKz0gJyAnICsgYXJnO1xuXHRcdH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZykgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcblx0XHRcdGNsYXNzZXMgKz0gJyAnICsgY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xuXHRcdH0gZWxzZSBpZiAoJ29iamVjdCcgPT09IHR5cGVvZiBhcmcpIHtcblx0XHRcdGZvciAodmFyIGtleSBpbiBhcmcpIHtcblx0XHRcdFx0aWYgKCFhcmcuaGFzT3duUHJvcGVydHkoa2V5KSB8fCAhYXJnW2tleV0pIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjbGFzc2VzICs9ICcgJyArIGtleTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0cmV0dXJuIGNsYXNzZXMuc3Vic3RyKDEpO1xufVxuXG4vLyBzYWZlbHkgZXhwb3J0IGNsYXNzTmFtZXMgZm9yIG5vZGUgLyBicm93c2VyaWZ5XG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0bW9kdWxlLmV4cG9ydHMgPSBjbGFzc05hbWVzO1xufVxuXG4vLyBzYWZlbHkgZXhwb3J0IGNsYXNzTmFtZXMgZm9yIFJlcXVpcmVKU1xuaWYgKHR5cGVvZiBkZWZpbmUgIT09ICd1bmRlZmluZWQnICYmIGRlZmluZS5hbWQpIHtcblx0ZGVmaW5lKCdjbGFzc25hbWVzJywgW10sIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBjbGFzc05hbWVzO1xuXHR9KTtcbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4vfi9jbGFzc25hbWVzL2luZGV4LmpzXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file +//# sourceMappingURL=react-draggable.map \ No newline at end of file diff --git a/dist/react-draggable.map b/dist/react-draggable.map index ffa4452d..fa34e3ba 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap fdff67a4988124e7419e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;;AAEA,KAAI,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,S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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap fdff67a4988124e7419e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 8dd3507d0f059d65012b",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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A;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;;AAEA,KAAI,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,yBAAyB,EAAE,SAAS,QAAQ,EAAE;;KAE5C,IAAI,QAAQ,CAAC,iBAAiB,IAAI,QAAQ,CAAC,KAAK,EAAE;OAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;MAC/C;AACL,IAAG;;AAEH,GAAE,oBAAoB,EAAE,WAAW;;KAE/B,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAC7D,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACjC,IAAG;;GAED,eAAe,EAAE,YAAY;KAC3B,OAAO;OACL,IAAI,EAAE,MAAM;OACZ,MAAM,EAAE,KAAK;OACb,MAAM,EAAE,IAAI;OACZ,MAAM,EAAE,IAAI;OACZ,IAAI,EAAE,IAAI;OACV,iBAAiB,EAAE,KAAK;OACxB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;OACnB,MAAM,EAAE,GAAG;OACX,oBAAoB,EAAE,IAAI;OAC1B,OAAO,EAAE,aAAa;OACtB,MAAM,EAAE,aAAa;OACrB,MAAM,EAAE,aAAa;OACrB,WAAW,EAAE,aAAa;MAC3B,CAAC;AACN,IAAG;;AAEH,GAAE,eAAe,EAAE,UAAU,KAAK,EAAE;;KAEhC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;AAChC,KAAI,OAAO;;AAEX,OAAM,QAAQ,EAAE,KAAK;AACrB;;AAEA,OAAM,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5B;;OAEM,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;MAC/C,CAAC;AACN,IAAG;;AAEH,GAAE,eAAe,EAAE,UAAU,CAAC,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B;;KAEI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;OACrE,OAAO;AACb,MAAK;AACL;;KAEI,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,KAAI,IAAI,WAAW,KAAK,KAAK,EAAE,OAAO;;AAEtC,KAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1C;AACA;;AAEA,KAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC9B;AACA;AACA;;KAEI,IAAI,CAAC,QAAQ,CAAC;OACZ,QAAQ,EAAE,IAAI;OACd,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;OAC/C,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;AACrD,MAAK,CAAC,CAAC;AACP;AACA;;KAEI,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACxD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9D,IAAG;;AAEH,GAAE,aAAa,EAAE,UAAU,CAAC,EAAE;;KAE1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;OACxB,OAAO;AACb,MAAK;;AAEL,KAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACjC;;KAEI,IAAI,CAAC,QAAQ,CAAC;OACZ,QAAQ,EAAE,KAAK;AACrB,MAAK,CAAC,CAAC;AACP;;AAEA,KAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C;;KAEI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC3D,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACjE,IAAG;;GAED,UAAU,EAAE,UAAU,CAAC,EAAE;AAC3B,KAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1C;;KAEI,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACzD,KAAI,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACzD;;KAEI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;OAClC,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;OAC3D,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAK;;KAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;OACrB,IAAI,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;OACnD,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,MAAK;AACL;;KAEI,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,KAAI,IAAI,YAAY,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;AAC5D;;KAEI,IAAI,CAAC,QAAQ,CAAC;OACZ,OAAO,EAAE,OAAO;OAChB,OAAO,EAAE,OAAO;MACjB,CAAC,CAAC;AACP,IAAG;;AAEH,GAAE,MAAM,EAAE,YAAY;AACtB;;AAEA,KAAI,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC3D;AACA;AACA;AACA;;AAEA,KAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC;;OAEjC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,OAAO;AAC1B,SAAQ,CAAC;AACT;;OAEM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,OAAO;SAClB,CAAC;MACJ,CAAC,CAAC;AACP,KAAI,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAClD;;KAEI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;OACpD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACvC,MAAK;;KAED,IAAI,SAAS,GAAG,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,GAAG,iBAAiB,EAAE;OACzF,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;OAC/C,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;AACnD,MAAK,CAAC,CAAC;AACP;AACA;;KAEI,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;OAClE,KAAK,EAAE,KAAK;AAClB,OAAM,SAAS,EAAE,SAAS;;OAEpB,WAAW,EAAE,IAAI,CAAC,eAAe;OACjC,YAAY,EAAE,SAAS,EAAE,CAAC;SACxB,EAAE,CAAC,cAAc,EAAE,CAAC;SACpB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3D,QAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;OAEZ,SAAS,EAAE,IAAI,CAAC,aAAa;OAC7B,UAAU,EAAE,IAAI,CAAC,aAAa;MAC/B,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;;;;;;;AC7pBH,gD;;;;;;ACAA,aAAY,CAAC;;AAEb,UAAS,QAAQ,CAAC,GAAG,EAAE;EACtB,IAAI,GAAG,IAAI,IAAI,EAAE;GAChB,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;AAC/E,GAAE;;EAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,EAAC;;AAED,OAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE,MAAM,EAAE;EAC3D,IAAI,IAAI,CAAC;EACT,IAAI,IAAI,CAAC;AACV,EAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;;EAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;GAC1C,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACtB,GAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;GAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACrC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B;AACH,GAAE;;EAED,OAAO,EAAE,CAAC;EACV,CAAC;;;;;;;ACzBF;AACA;AACA;;AAEA,GAAE;;AAEF,UAAS,UAAU,GAAG;EACrB,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,EAAC,IAAI,GAAG,CAAC;;EAER,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;GAC1C,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;GACnB,IAAI,CAAC,GAAG,EAAE;IACT,SAAS;AACZ,IAAG;;GAED,IAAI,QAAQ,KAAK,OAAO,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IACvD,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC;IACrB,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,EAAE;IACpE,OAAO,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IACnC,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;KACpB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;MAC1C,SAAS;MACT;KACD,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC;KACrB;IACD;GACD;EACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAC;;AAED,kDAAiD;AACjD,KAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;EACpD,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;AAC7B,EAAC;;AAED,0CAAyC;AACzC,KAAI,IAA2C,EAAE;EAChD,iCAAqB,EAAE,kCAAE,WAAW;GACnC,OAAO,UAAU,CAAC;GAClB,+IAAC,CAAC;EACH","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 8dd3507d0f059d65012b\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index dd501271..59d37ecb 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){var state=draggable._pendingState||draggable.state;return{node:draggable.getDOMNode(),position:{top:state.clientY,left:state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,length=array.length;length>i;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){if(!style.x&&!style.y)return{};var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;si;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;s 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n if (!style.x && !style.y) return {};\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file +{"version":3,"file":"./dist/react-draggable.js","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 8dd3507d0f059d65012b",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","createUIEvent","draggable","state","_pendingState","node","getDOMNode","position","top","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","int","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","isNum","num","isNaN","a","parseInt","getBoundPosition","bounds","JSON","parse","stringify","parent","parentNode","nodeStyle","parentStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","bottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","x","round","y","addUserSelectStyles","enableUserSelectHack","style","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","createCSSTransform","transform","WebkitTransform","OTransform","msTransform","MozTransform","React","emptyFunction","assign","classNames","isTouchDevice","dragEventFor","eventsFor","touch","start","move","end","mouse","createClass","displayName","propTypes","PropTypes","oneOf","oneOfType","shape","Number","bool","handle","string","cancel","arrayOf","number","moveOnStartChange","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillReceiveProps","newProps","setState","getInitialState","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","NaN","dragging","offsetX","offsetY","handleDragStart","target","shouldStart","dragPoint","Array","isArray","coords","pos","shouldUpdate","render","childStyle","children","className","react-draggable-dragging","react-draggable-dragged","dragged","cloneElement","Children","only","onTouchStart","ev","preventDefault","arguments","bind","onMouseUp","onTouchEnd","ToObject","val","TypeError","source","from","keys","to","s","arg","classes","key","hasOwnProperty","substr","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 8dd3507d0f059d65012b\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file diff --git a/package.json b/package.json index 3ccf279f..6479841c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.3", + "version": "0.7.4", "description": "React draggable component", "main": "index.js", "scripts": { From 430afe75f545c8cc9eed054ab95083fffa1d10d0 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 May 2015 10:16:16 -0500 Subject: [PATCH 051/412] Fix #51; touch events rework based on first event. Also fixes #37 and #43. --- example/index.html | 41 +++++++++++++-------- lib/draggable.js | 89 ++++++++++++++++++++++------------------------ 2 files changed, 69 insertions(+), 61 deletions(-) diff --git a/example/index.html b/example/index.html index 6a656b82..dfe76869 100644 --- a/example/index.html +++ b/example/index.html @@ -58,7 +58,8 @@ return { position: { top: 0, left: 0 - } + }, + activeDrags: 0 }; }, @@ -68,57 +69,67 @@ }); }, + onStart: function() { + this.setState({activeDrags: ++this.state.activeDrags}); + }, + + onStop: function() { + this.setState({activeDrags: --this.state.activeDrags}); + }, + render: function () { + var drags = {onStart: this.onStart, onStop: this.onStop}; return (

React Draggable

+

Active Drags: {this.state.activeDrags}

Demo Source

- +
I can be dragged anywhere
- +
I can only be dragged horizonally
- +
I can only be dragged vertically
- +
I track my position
-
top: {this.state.position.top}, left: {this.state.position.left}
+
top: {this.state.position.top.toFixed(0)}, left: {this.state.position.left.toFixed(0)}
- +
Drag here
You must click my handle to drag me
- +
Can't drag here
Dragging here works
- +
I snap to a 25 x 25 grid
- +
I snap to a 50 x 50 grid
- +
I can only be moved 100px in any direction.
- +
I can only be moved within my offsetParent.

Both parent padding and child margin work properly.
- +
I also can only be moved within my offsetParent.

Both parent padding and child margin work properly. @@ -126,11 +137,11 @@

React Draggable

-
+
I already have an absolute position.
- +
{"I have a start position of {x: 25, y: 25}, so I'm slightly offset."}
diff --git a/lib/draggable.js b/lib/draggable.js index e63e937f..2ae2a42e 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -56,41 +56,24 @@ function matchesSelector(el, selector) { return el[method].call(el, selector); } -// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886 -/* Conditional to fix node server side rendering of component */ -if (typeof window === 'undefined') { - // Do Node Stuff - var isTouchDevice = false; -} else { - // Do Browser Stuff - var isTouchDevice = 'ontouchstart' in window || // works on most browsers - 'onmsgesturechange' in window; // works on ie10 on ms surface - -} - -// look ::handleDragStart -//function isMultiTouch(e) { -// return e.touches && Array.isArray(e.touches) && e.touches.length > 1 -//} - /** * simple abstraction for dragging events names * */ -var dragEventFor = (function () { - var eventsFor = { - touch: { - start: 'touchstart', - move: 'touchmove', - end: 'touchend' - }, - mouse: { - start: 'mousedown', - move: 'mousemove', - end: 'mouseup' - } - }; - return eventsFor[isTouchDevice ? 'touch' : 'mouse']; -})(); +var eventsFor = { + touch: { + start: 'touchstart', + move: 'touchmove', + end: 'touchend' + }, + mouse: { + start: 'mousedown', + move: 'mousemove', + end: 'mouseup' + } +}; + +// Default to mouse events +var dragEventFor = eventsFor['mouse']; /** * get {clientX, clientY} positions of control @@ -528,13 +511,6 @@ module.exports = React.createClass({ }, handleDragStart: function (e) { - // todo: write right implementation to prevent multitouch drag - // prevent multi-touch events - // if (isMultiTouch(e)) { - // this.handleDragEnd.apply(e, arguments); - // return - // } - // Make it possible to attach event handlers on top of this one this.props.onMouseDown(e); @@ -619,6 +595,24 @@ module.exports = React.createClass({ }); }, + onMouseDown: function(ev) { + // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled. + // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable. + // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/ + if (dragEventFor == eventsFor['touch']) { + return ev.preventDefault(); + } + + return this.handleDragStart.apply(this, arguments); + }, + + onTouchStart: function(ev) { + // We're on a touch device now, so change the event handlers + dragEventFor = eventsFor['touch']; + + return this.handleDragStart.apply(this, arguments); + }, + render: function () { // Create style object. We extend from existing styles so we don't // remove anything already set (like background, color, etc). @@ -639,7 +633,14 @@ module.exports = React.createClass({ this.state.clientY : 0 }); - var style = assign({}, childStyle, transform); + + // Workaround IE pointer events; see #51 + // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 + var touchHacks = { + touchAction: 'none' + }; + + var style = assign({}, childStyle, transform, touchHacks); // Set zIndex if currently dragging and prop has been provided if (this.state.dragging && !isNaN(this.props.zIndex)) { @@ -657,12 +658,8 @@ module.exports = React.createClass({ style: style, className: className, - onMouseDown: this.handleDragStart, - onTouchStart: function(ev){ - ev.preventDefault(); // prevent for scroll - return this.handleDragStart.apply(this, arguments); - }.bind(this), - + onMouseDown: this.onMouseDown, + onTouchStart: this.onTouchStart, onMouseUp: this.handleDragEnd, onTouchEnd: this.handleDragEnd }); From a41280d5b4c428e5e47ac2b4475ea174c8ba7bbe Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 May 2015 10:22:46 -0500 Subject: [PATCH 052/412] Attach mousemove/end events to document, not window. Fixes IE9 and IE10 compat. IE8 is hopeless; doesn't work with React anyway. --- lib/draggable.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index 2ae2a42e..0c026148 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -472,8 +472,8 @@ module.exports = React.createClass({ componentWillUnmount: function() { // Remove any leftover event handlers - removeEvent(window, dragEventFor['move'], this.handleDrag); - removeEvent(window, dragEventFor['end'], this.handleDragEnd); + removeEvent(document, dragEventFor['move'], this.handleDrag); + removeEvent(document, dragEventFor['end'], this.handleDragEnd); removeUserSelectStyles(this); }, @@ -541,8 +541,8 @@ module.exports = React.createClass({ // Add event handlers - addEvent(window, dragEventFor['move'], this.handleDrag); - addEvent(window, dragEventFor['end'], this.handleDragEnd); + addEvent(document, dragEventFor['move'], this.handleDrag); + addEvent(document, dragEventFor['end'], this.handleDragEnd); }, handleDragEnd: function (e) { @@ -562,8 +562,8 @@ module.exports = React.createClass({ this.props.onStop(e, createUIEvent(this)); // Remove event handlers - removeEvent(window, dragEventFor['move'], this.handleDrag); - removeEvent(window, dragEventFor['end'], this.handleDragEnd); + removeEvent(document, dragEventFor['move'], this.handleDrag); + removeEvent(document, dragEventFor['end'], this.handleDragEnd); }, handleDrag: function (e) { From 2e629c0b9be88cb9f924014deaa8f2ddaa033efa Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 May 2015 10:25:51 -0500 Subject: [PATCH 053/412] release v0.8.0 --- CHANGELOG.md | 6 + bower.json | 2 +- dist/react-draggable.js | 292 +++++++++++++++++------------------ dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 7 files changed, 155 insertions(+), 153 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad32efb7..0aa7cd28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -87,3 +87,9 @@ - Fix a bug where a quick drag out of bounds to `0,0` would cause the element to remain in an inaccurate position, because the translation was removed from the CSS. See #55. + +### 0.8.0 (May 19, 2015) + +- Touch/mouse events rework. Fixes #51, #37, and #43, as well as IE11 support. +- Moved mousemove/mouseup and touch event handlers to document from window. Fixes IE9/10 support. + IE8 is still not supported, as it is not supported by React. diff --git a/bower.json b/bower.json index 99bf01be..e5df13bf 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.4", + "version": "0.8.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 29c29b6a..ad591318 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -11,41 +11,41 @@ return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; -/******/ + /******/ // The require function /******/ function __webpack_require__(moduleId) { -/******/ + /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; -/******/ + /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; -/******/ + /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ + /******/ // Flag the module as loaded /******/ module.loaded = true; -/******/ + /******/ // Return the exports of the module /******/ return module.exports; /******/ } -/******/ -/******/ + + /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; -/******/ + /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; -/******/ + /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; -/******/ + /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) @@ -62,16 +62,16 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { 'use strict'; - + var React = __webpack_require__(2); var emptyFunction = function(){}; var assign = __webpack_require__(3); var classNames = __webpack_require__(4); - + // // Helpers. See Element definition below this section. // - + function createUIEvent(draggable) { // State changes are often (but not always!) async. We want the latest value. var state = draggable._pendingState || draggable.state; @@ -83,28 +83,28 @@ return /******/ (function(modules) { // webpackBootstrap } }; } - + function canDragY(draggable) { return draggable.props.axis === 'both' || draggable.props.axis === 'y'; } - + function canDragX(draggable) { return draggable.props.axis === 'both' || draggable.props.axis === 'x'; } - + function isFunction(func) { return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; } - + // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc function findInArray(array, callback) { for (var i = 0, length = array.length; i < length; i++) { if (callback.apply(callback, [array[i], i, array])) return array[i]; } } - + function matchesSelector(el, selector) { var method = findInArray([ 'matches', @@ -115,46 +115,29 @@ return /******/ (function(modules) { // webpackBootstrap ], function(method){ return isFunction(el[method]); }); - + return el[method].call(el, selector); } - - // @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886 - /* Conditional to fix node server side rendering of component */ - if (typeof window === 'undefined') { - // Do Node Stuff - var isTouchDevice = false; - } else { - // Do Browser Stuff - var isTouchDevice = 'ontouchstart' in window || // works on most browsers - 'onmsgesturechange' in window; // works on ie10 on ms surface - - } - - // look ::handleDragStart - //function isMultiTouch(e) { - // return e.touches && Array.isArray(e.touches) && e.touches.length > 1 - //} - + /** * simple abstraction for dragging events names * */ - var dragEventFor = (function () { - var eventsFor = { - touch: { - start: 'touchstart', - move: 'touchmove', - end: 'touchend' - }, - mouse: { - start: 'mousedown', - move: 'mousemove', - end: 'mouseup' - } - }; - return eventsFor[isTouchDevice ? 'touch' : 'mouse']; - })(); - + var eventsFor = { + touch: { + start: 'touchstart', + move: 'touchmove', + end: 'touchend' + }, + mouse: { + start: 'mousedown', + move: 'mousemove', + end: 'mouseup' + } + }; + + // Default to mouse events + var dragEventFor = eventsFor['mouse']; + /** * get {clientX, clientY} positions of control * */ @@ -165,7 +148,7 @@ return /******/ (function(modules) { // webpackBootstrap clientY: position.clientY }; } - + function addEvent(el, event, handler) { if (!el) { return; } if (el.attachEvent) { @@ -176,7 +159,7 @@ return /******/ (function(modules) { // webpackBootstrap el['on' + event] = handler; } } - + function removeEvent(el, event, handler) { if (!el) { return; } if (el.detachEvent) { @@ -187,7 +170,7 @@ return /******/ (function(modules) { // webpackBootstrap el['on' + event] = null; } } - + function outerHeight(node) { // This is deliberately excluding margin for our calculations, since we are using // offsetTop which is including margin. See getBoundPosition @@ -197,7 +180,7 @@ return /******/ (function(modules) { // webpackBootstrap height += int(computedStyle.borderBottomWidth); return height; } - + function outerWidth(node) { // This is deliberately excluding margin for our calculations, since we are using // offsetLeft which is including margin. See getBoundPosition @@ -214,7 +197,7 @@ return /******/ (function(modules) { // webpackBootstrap height -= int(computedStyle.paddingBottom); return height; } - + function innerWidth(node) { var width = node.clientWidth; var computedStyle = window.getComputedStyle(node); @@ -222,20 +205,20 @@ return /******/ (function(modules) { // webpackBootstrap width -= int(computedStyle.paddingRight); return width; } - + function isNum(num) { return typeof num === 'number' && !isNaN(num); } - + function int(a) { return parseInt(a, 10); } - + function getBoundPosition(draggable, clientX, clientY) { var bounds = JSON.parse(JSON.stringify(draggable.props.bounds)); var node = draggable.getDOMNode(); var parent = node.parentNode; - + if (bounds === 'parent') { var nodeStyle = window.getComputedStyle(node); var parentStyle = window.getComputedStyle(parent); @@ -249,40 +232,40 @@ return /******/ (function(modules) { // webpackBootstrap bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop }; } - + // Keep x and y below right and bottom limits... if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right); if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom); - + // But above left and top limits. if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left); if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top); - + return [clientX, clientY]; } - + function snapToGrid(grid, pendingX, pendingY) { var x = Math.round(pendingX / grid[0]) * grid[0]; var y = Math.round(pendingY / grid[1]) * grid[1]; return [x, y]; } - + // Useful for preventing blue highlights all over everything when dragging. var userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' + '-o-user-select:none;-ms-user-select:none;'; - + function addUserSelectStyles(draggable) { if (!draggable.props.enableUserSelectHack) return; var style = document.body.getAttribute('style') || ''; document.body.setAttribute('style', style + userSelectStyle); } - + function removeUserSelectStyles(draggable) { if (!draggable.props.enableUserSelectHack) return; var style = document.body.getAttribute('style') || ''; document.body.setAttribute('style', style.replace(userSelectStyle, '')); } - + function createCSSTransform(style) { // Replace unitless items with px var x = style.x + 'px'; @@ -295,19 +278,19 @@ return /******/ (function(modules) { // webpackBootstrap MozTransform: 'translate(' + x + ',' + y + ')' }; } - - + + // // End Helpers. // - + // // Define // - + module.exports = React.createClass({ displayName: 'Draggable', - + propTypes: { /** * `axis` determines which axis the draggable can move. @@ -319,7 +302,7 @@ return /******/ (function(modules) { // webpackBootstrap * Defaults to 'both'. */ axis: React.PropTypes.oneOf(['both', 'x', 'y']), - + /** * `bounds` determines the range of movement available to the element. * Available values are: @@ -355,14 +338,14 @@ return /******/ (function(modules) { // webpackBootstrap }), React.PropTypes.oneOf(['parent', false]) ]), - + /** * By default, we add 'user-select:none' attributes to the document body * to prevent ugly text selection during drag. If this is causing problems * for your app, set this to `false`. */ enableUserSelectHack: React.PropTypes.bool, - + /** * `handle` specifies a selector to be used as the handle that initiates drag. * @@ -384,7 +367,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ handle: React.PropTypes.string, - + /** * `cancel` specifies a selector to be used to prevent drag initialization. * @@ -406,7 +389,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ cancel: React.PropTypes.string, - + /** * `grid` specifies the x and y that dragging should snap to. * @@ -425,7 +408,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ grid: React.PropTypes.arrayOf(React.PropTypes.number), - + /** * `start` specifies the x and y that the dragged item should start at * @@ -447,14 +430,14 @@ return /******/ (function(modules) { // webpackBootstrap x: React.PropTypes.number, y: React.PropTypes.number }), - + /** * `moveOnStartChange`, if true (default false) will move the element if the `start` * property changes. */ moveOnStartChange: React.PropTypes.bool, - - + + /** * `zIndex` specifies the zIndex to use while dragging. * @@ -473,7 +456,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ zIndex: React.PropTypes.number, - + /** * Called when dragging starts. * If this function returns the boolean false, dragging will be canceled. @@ -494,7 +477,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ onStart: React.PropTypes.func, - + /** * Called while dragging. * If this function returns the boolean false, dragging will be canceled. @@ -515,7 +498,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ onDrag: React.PropTypes.func, - + /** * Called when dragging stops. * @@ -535,28 +518,28 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ onStop: React.PropTypes.func, - + /** * A workaround option which can be passed if onMouseDown needs to be accessed, * since it'll always be blocked (due to that there's internal use of onMouseDown) */ onMouseDown: React.PropTypes.func, }, - + componentWillReceiveProps: function(newProps) { // React to changes in the 'start' param. if (newProps.moveOnStartChange && newProps.start) { this.setState(this.getInitialState(newProps)); } }, - + componentWillUnmount: function() { // Remove any leftover event handlers removeEvent(window, dragEventFor['move'], this.handleDrag); removeEvent(window, dragEventFor['end'], this.handleDragEnd); removeUserSelectStyles(this); }, - + getDefaultProps: function () { return { axis: 'both', @@ -574,49 +557,42 @@ return /******/ (function(modules) { // webpackBootstrap onMouseDown: emptyFunction }; }, - + getInitialState: function (props) { // Handle call from CWRP props = props || this.props; return { // Whether or not we are currently dragging. dragging: false, - + // Offset between start top/left and mouse top/left while dragging. offsetX: 0, offsetY: 0, - + // Current transform x and y. clientX: props.start.x, clientY: props.start.y }; }, - + handleDragStart: function (e) { - // todo: write right implementation to prevent multitouch drag - // prevent multi-touch events - // if (isMultiTouch(e)) { - // this.handleDragEnd.apply(e, arguments); - // return - // } - // Make it possible to attach event handlers on top of this one this.props.onMouseDown(e); - + // Short circuit if handle or cancel prop was provided and selector doesn't match if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) || (this.props.cancel && matchesSelector(e.target, this.props.cancel))) { return; } - + // Call event handler. If it returns explicit false, cancel. var shouldStart = this.props.onStart(e, createUIEvent(this)); if (shouldStart === false) return; - + var dragPoint = getControlPosition(e); - + // Add a style to the body to disable user-select. This prevents text from // being selected all over the page. addUserSelectStyles(this); - + // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us // to drag elements around even if they have been moved, without issue. @@ -625,68 +601,86 @@ return /******/ (function(modules) { // webpackBootstrap offsetX: dragPoint.clientX - this.state.clientX, offsetY: dragPoint.clientY - this.state.clientY }); - - + + // Add event handlers addEvent(window, dragEventFor['move'], this.handleDrag); addEvent(window, dragEventFor['end'], this.handleDragEnd); }, - + handleDragEnd: function (e) { // Short circuit if not currently dragging if (!this.state.dragging) { return; } - + removeUserSelectStyles(this); - + // Turn off dragging this.setState({ dragging: false }); - + // Call event handler this.props.onStop(e, createUIEvent(this)); - + // Remove event handlers removeEvent(window, dragEventFor['move'], this.handleDrag); removeEvent(window, dragEventFor['end'], this.handleDragEnd); }, - + handleDrag: function (e) { var dragPoint = getControlPosition(e); - + // Calculate X and Y var clientX = dragPoint.clientX - this.state.offsetX; var clientY = dragPoint.clientY - this.state.offsetY; - + // Snap to grid if prop has been provided if (Array.isArray(this.props.grid)) { var coords = snapToGrid(this.props.grid, clientX, clientY); clientX = coords[0], clientY = coords[1]; } - + if (this.props.bounds) { var pos = getBoundPosition(this, clientX, clientY); clientX = pos[0], clientY = pos[1]; } - + // Call event handler. If it returns explicit false, cancel. var shouldUpdate = this.props.onDrag(e, createUIEvent(this)); if (shouldUpdate === false) return this.handleDragEnd(); - + // Update transform this.setState({ clientX: clientX, clientY: clientY }); }, - + + onMouseDown: function(ev) { + // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled. + // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable. + // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/ + if (dragEventFor == eventsFor['touch']) { + return ev.preventDefault(); + } + + return this.handleDragStart.apply(this, arguments); + }, + + onTouchStart: function(ev) { + // We're on a touch device now, so change the event handlers + dragEventFor = eventsFor['touch']; + + return this.handleDragStart.apply(this, arguments); + }, + render: function () { // Create style object. We extend from existing styles so we don't // remove anything already set (like background, color, etc). var childStyle = this.props.children.props.style || {}; - + // Add a CSS transform to move the element around. This allows us to move the element around // without worrying about whether or not it is relatively or absolutely positioned. // If the item you are dragging already has a transform set, wrap it in a so @@ -696,36 +690,39 @@ return /******/ (function(modules) { // webpackBootstrap x: canDragX(this) ? this.state.clientX : 0, - + // Set top if vertical drag is enabled y: canDragY(this) ? this.state.clientY : 0 }); - var style = assign({}, childStyle, transform); - + + // Workaround IE pointer events; see #51 + // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 + var touchHacks = { + touchAction: 'none' + }; + + var style = assign({}, childStyle, transform, touchHacks); + // Set zIndex if currently dragging and prop has been provided if (this.state.dragging && !isNaN(this.props.zIndex)) { style.zIndex = this.props.zIndex; } - + var className = classNames((this.props.children.props.className || ''), 'react-draggable', { 'react-draggable-dragging': this.state.dragging, 'react-draggable-dragged': this.state.dragged }); - + // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.cloneElement(React.Children.only(this.props.children), { style: style, className: className, - - onMouseDown: this.handleDragStart, - onTouchStart: function(ev){ - ev.preventDefault(); // prevent for scroll - return this.handleDragStart.apply(this, arguments); - }.bind(this), - + + onMouseDown: this.onMouseDown, + onTouchStart: this.onTouchStart, onMouseUp: this.handleDragEnd, onTouchEnd: this.handleDragEnd }); @@ -744,29 +741,29 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { 'use strict'; - + function ToObject(val) { if (val == null) { throw new TypeError('Object.assign cannot be called with null or undefined'); } - + return Object(val); } - + module.exports = Object.assign || function (target, source) { var from; var keys; var to = ToObject(target); - + for (var s = 1; s < arguments.length; s++) { from = arguments[s]; keys = Object.keys(Object(from)); - + for (var i = 0; i < keys.length; i++) { to[keys[i]] = from[keys[i]]; } } - + return to; }; @@ -780,17 +777,17 @@ return /******/ (function(modules) { // webpackBootstrap Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ - + function classNames() { var classes = ''; var arg; - + for (var i = 0; i < arguments.length; i++) { arg = arguments[i]; if (!arg) { continue; } - + if ('string' === typeof arg || 'number' === typeof arg) { classes += ' ' + arg; } else if (Object.prototype.toString.call(arg) === '[object Array]') { @@ -806,12 +803,12 @@ return /******/ (function(modules) { // webpackBootstrap } return classes.substr(1); } - + // safely export classNames for node / browserify if (typeof module !== 'undefined' && module.exports) { module.exports = classNames; } - + // safely export classNames for RequireJS if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { @@ -823,5 +820,4 @@ return /******/ (function(modules) { // webpackBootstrap /***/ } /******/ ]) }); -; -//# sourceMappingURL=react-draggable.map \ No newline at end of file +; \ No newline at end of file diff --git a/dist/react-draggable.map b/dist/react-draggable.map index fa34e3ba..e00cf2e7 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 8dd3507d0f059d65012b",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,OAAM,CAAC,OAAO,GAAG,mBAAO,CAAC,CAAiB,CAAC,CAAC;;;;;;;ACA5C,aAAY,CAAC;;AAEb,KAAI,KAAK,GAAG,mBAAO,CAAC,CAAO,CAAC,CAAC;AAC7B,KAAI,aAAa,GAAG,UAAU,EAAE,CAAC;AACjC,KAAI,MAAM,GAAG,mBAAO,CAAC,CAAe,CAAC,CAAC;AACtC,KAAI,UAAU,GAAG,mBAAO,CAAC,CAAY,CAAC,CAAC;;AAEvC,GAAE;AACF,uDAAsD;AACtD,GAAE;;AAEF,UAAS,aAAa,CAAC,SAAS,EAAE;;GAEhC,IAAI,KAAK,GAAG,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,KAAK,CAAC;GACvD,OAAO;KACL,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE;KAC5B,QAAQ,EAAE;OACR,GAAG,EAAE,KAAK,CAAC,OAAO;OAClB,IAAI,EAAE,KAAK,CAAC,OAAO;MACpB;IACF,CAAC;AACJ,EAAC;;AAED,UAAS,QAAQ,CAAC,SAAS,EAAE;GAC3B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;OAClC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AACnC,EAAC;;AAED,UAAS,QAAQ,CAAC,SAAS,EAAE;GAC3B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;OAClC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AACnC,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE;GACxB,OAAO,OAAO,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,mBAAmB,CAAC;AACpG,EAAC;;AAED,sEAAqE;AACrE,UAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE;GACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;KACtD,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACrE;AACH,EAAC;;AAED,UAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE;GACrC,IAAI,MAAM,GAAG,WAAW,CAAC;KACvB,SAAS;KACT,uBAAuB;KACvB,oBAAoB;KACpB,mBAAmB;KACnB,kBAAkB;IACnB,EAAE,SAAS,MAAM,CAAC;KACjB,OAAO,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,IAAG,CAAC,CAAC;;GAEH,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACvC,EAAC;;AAED,4IAA2I;AAC3I,iEAAgE;AAChE,KAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;KAE/B,IAAI,aAAa,GAAG,KAAK,CAAC;AAC9B,EAAC,MAAM;;KAEH,IAAI,aAAa,GAAG,cAAc,IAAI,MAAM;AAChD,yBAAwB,mBAAmB,IAAI,MAAM,CAAC;;AAEtD,EAAC;;AAED,0BAAyB;AACzB,6BAA4B;AAC5B,yEAAwE;AACxE,IAAG;;AAEH;;MAEK;AACL,KAAI,YAAY,GAAG,CAAC,YAAY;GAC9B,IAAI,SAAS,GAAG;KACd,KAAK,EAAE;OACL,KAAK,EAAE,YAAY;OACnB,IAAI,EAAE,WAAW;OACjB,GAAG,EAAE,UAAU;MAChB;KACD,KAAK,EAAE;OACL,KAAK,EAAE,WAAW;OAClB,IAAI,EAAE,WAAW;OACjB,GAAG,EAAE,SAAS;MACf;IACF,CAAC;GACF,OAAO,SAAS,CAAC,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AACtD,EAAC,GAAG,CAAC;;AAEL;;MAEK;AACL,UAAS,kBAAkB,CAAC,CAAC,EAAE;GAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GAChD,OAAO;KACL,OAAO,EAAE,QAAQ,CAAC,OAAO;KACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;IAC1B,CAAC;AACJ,EAAC;;AAED,UAAS,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;GACpC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;GACpB,IAAI,EAAE,CAAC,WAAW,EAAE;KAClB,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,EAAE,CAAC,gBAAgB,EAAE;KAC9B,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM;KACL,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;IAC5B;AACH,EAAC;;AAED,UAAS,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;GACvC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;GACpB,IAAI,EAAE,CAAC,WAAW,EAAE;KAClB,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,EAAE,CAAC,mBAAmB,EAAE;KACjC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM;KACL,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IACzB;AACH,EAAC;;AAED,UAAS,WAAW,CAAC,IAAI,EAAE;AAC3B;;GAEE,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;GAC/B,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;GAClD,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;GAC5C,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;GAC/C,OAAO,MAAM,CAAC;AAChB,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE;AAC1B;;GAEE,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;GAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;GAClD,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;GAC5C,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;GAC7C,OAAO,KAAK,CAAC;EACd;AACD,UAAS,WAAW,CAAC,IAAI,EAAE;GACzB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;GAC/B,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;GAClD,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;GACxC,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;GAC3C,OAAO,MAAM,CAAC;AAChB,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE;GACxB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;GAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;GAClD,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;GACxC,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;GACzC,OAAO,KAAK,CAAC;AACf,EAAC;;AAED,UAAS,KAAK,CAAC,GAAG,EAAE;GAClB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,EAAC;;AAED,UAAS,GAAG,CAAC,CAAC,EAAE;GACd,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzB,EAAC;;AAED,UAAS,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;GACrD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;GAChE,IAAI,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;AACpC,GAAE,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;;GAE7B,IAAI,MAAM,KAAK,QAAQ,EAAE;KACvB,IAAI,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAClD,KAAI,IAAI,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;KAElD,MAAM,GAAG;OACP,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC;aAC/C,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC;OAChE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC;aAC5C,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;OAC9D,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU;OAC9D,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS;MACjE,CAAC;AACN,IAAG;AACH;;GAEE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACrE,GAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACvE;;GAEE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACnE,GAAE,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;GAE/D,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5B,EAAC;;AAED,UAAS,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;GAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;GACjD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;GACjD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChB,EAAC;;AAED,4EAA2E;AAC3E,KAAI,eAAe,GAAG,oEAAoE;AAC1F,GAAE,2CAA2C,CAAC;;AAE9C,UAAS,mBAAmB,CAAC,SAAS,EAAE;GACtC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO;GAClD,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;GACtD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC;AAC/D,EAAC;;AAED,UAAS,sBAAsB,CAAC,SAAS,EAAE;GACzC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO;GAClD,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;GACtD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1E,EAAC;;AAED,UAAS,kBAAkB,CAAC,KAAK,EAAE;;GAEjC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;GACvB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;GACvB,OAAO;KACL,SAAS,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;KAC3C,eAAe,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;KACjD,UAAU,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;KAC5C,WAAW,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;KAC7C,YAAY,EAAE,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;IAC/C,CAAC;AACJ,EAAC;AACD;;AAEA,GAAE;AACF,gBAAe;AACf,GAAE;;AAEF,GAAE;AACF,sBAAqB;AACrB,GAAE;;AAEF,OAAM,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;AACnC,GAAE,WAAW,EAAE,WAAW;;AAE1B,GAAE,SAAS,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;OAChC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC7B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QAC/B,CAAC;OACF,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;;AAEA,KAAI,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;;AAEA,KAAI,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,yBAAyB,EAAE,SAAS,QAAQ,EAAE;;KAE5C,IAAI,QAAQ,C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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 8dd3507d0f059d65012b\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n// @credits: http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886\n/* Conditional to fix node server side rendering of component */\nif (typeof window === 'undefined') {\n // Do Node Stuff\n var isTouchDevice = false;\n} else {\n // Do Browser Stuff\n var isTouchDevice = 'ontouchstart' in window || // works on most browsers\n 'onmsgesturechange' in window; // works on ie10 on ms surface\n\n}\n\n// look ::handleDragStart\n//function isMultiTouch(e) {\n// return e.touches && Array.isArray(e.touches) && e.touches.length > 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap eeb5bc5902914d87840e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;OAChC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC7B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QAC/B,CAAC;OACF,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;;AAEA,KAAI,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap eeb5bc5902914d87840e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n};\n\n// Default to mouse events\nvar dragEventFor = eventsFor['mouse'];\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(document, dragEventFor['move'], this.handleDrag);\n addEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n onMouseDown: function(ev) {\n // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled.\n // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable.\n // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/\n if (dragEventFor == eventsFor['touch']) {\n return ev.preventDefault();\n }\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n onTouchStart: function(ev) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor['touch'];\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n var touchHacks = {\n touchAction: 'none'\n };\n\n var style = assign({}, childStyle, transform, touchHacks);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 59d37ecb..14ac01fd 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){var state=draggable._pendingState||draggable.state;return{node:draggable.getDOMNode(),position:{top:state.clientY,left:state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,length=array.length;length>i;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4);if("undefined"==typeof window)var isTouchDevice=!1;else var isTouchDevice="ontouchstart"in window||"onmsgesturechange"in window;var dragEventFor=function(){var eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}};return eventsFor[isTouchDevice?"touch":"mouse"]}(),userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(window,dragEventFor.move,this.handleDrag),addEvent(window,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(window,dragEventFor.move,this.handleDrag),removeEvent(window,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),style=assign({},childStyle,transform);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.handleDragStart,onTouchStart:function(ev){return ev.preventDefault(),this.handleDragStart.apply(this,arguments)}.bind(this),onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;si;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4),eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}},dragEventFor=eventsFor.mouse,userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(document,dragEventFor.move,this.handleDrag),removeEvent(document,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(document,dragEventFor.move,this.handleDrag),addEvent(document,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(document,dragEventFor.move,this.handleDrag),removeEvent(document,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},onMouseDown:function(ev){return dragEventFor==eventsFor.touch?ev.preventDefault():this.handleDragStart.apply(this,arguments)},onTouchStart:function(ev){return dragEventFor=eventsFor.touch,this.handleDragStart.apply(this,arguments)},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),touchHacks={touchAction:"none"},style=assign({},childStyle,transform,touchHacks);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;s 1\n//}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar dragEventFor = (function () {\n var eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n };\n return eventsFor[isTouchDevice ? 'touch' : 'mouse'];\n})();\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // todo: write right implementation to prevent multitouch drag\n // prevent multi-touch events\n // if (isMultiTouch(e)) {\n // this.handleDragEnd.apply(e, arguments);\n // return\n // }\n\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(window, dragEventFor['move'], this.handleDrag);\n addEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(window, dragEventFor['move'], this.handleDrag);\n removeEvent(window, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n var style = assign({}, childStyle, transform);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.handleDragStart,\n onTouchStart: function(ev){\n ev.preventDefault(); // prevent for scroll\n return this.handleDragStart.apply(this, arguments);\n }.bind(this),\n\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file +{"version":3,"file":"./dist/react-draggable.js","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap eeb5bc5902914d87840e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","createUIEvent","draggable","state","_pendingState","node","getDOMNode","position","top","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","int","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","isNum","num","isNaN","a","parseInt","getBoundPosition","bounds","JSON","parse","stringify","parent","parentNode","nodeStyle","parentStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","bottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","x","round","y","addUserSelectStyles","enableUserSelectHack","style","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","createCSSTransform","transform","WebkitTransform","OTransform","msTransform","MozTransform","React","emptyFunction","assign","classNames","eventsFor","touch","start","move","end","mouse","dragEventFor","createClass","displayName","propTypes","PropTypes","oneOf","oneOfType","shape","Number","bool","handle","string","cancel","arrayOf","number","moveOnStartChange","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillReceiveProps","newProps","setState","getInitialState","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","NaN","dragging","offsetX","offsetY","handleDragStart","target","shouldStart","dragPoint","Array","isArray","coords","pos","shouldUpdate","ev","preventDefault","arguments","onTouchStart","render","childStyle","children","touchHacks","touchAction","className","react-draggable-dragging","react-draggable-dragged","dragged","cloneElement","Children","only","onMouseUp","onTouchEnd","ToObject","val","TypeError","source","from","keys","to","s","arg","classes","key","hasOwnProperty","substr","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined"],"mappings":"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AK,CAAC,SAAS,CAAC,MAAM;QAC/B,CAAC;OACF,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;;AAEA,KAAI,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;;AAEA,KAAI,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap eeb5bc5902914d87840e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n};\n\n// Default to mouse events\nvar dragEventFor = eventsFor['mouse'];\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(document, dragEventFor['move'], this.handleDrag);\n addEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n onMouseDown: function(ev) {\n // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled.\n // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable.\n // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/\n if (dragEventFor == eventsFor['touch']) {\n return ev.preventDefault();\n }\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n onTouchStart: function(ev) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor['touch'];\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n var touchHacks = {\n touchAction: 'none'\n };\n\n var style = assign({}, childStyle, transform, touchHacks);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file diff --git a/package.json b/package.json index 6479841c..3bec58f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.7.4", + "version": "0.8.0", "description": "React draggable component", "main": "index.js", "scripts": { From 246fb42f0b269db42e2d359886eb122a045ca5df Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 May 2015 10:36:07 -0500 Subject: [PATCH 054/412] Fix incorrect unminified build --- dist/react-draggable.js | 229 ++++++++++++++++++++-------------------- 1 file changed, 115 insertions(+), 114 deletions(-) diff --git a/dist/react-draggable.js b/dist/react-draggable.js index ad591318..df70d098 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -11,41 +11,41 @@ return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; - +/******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { - +/******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; - +/******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; - +/******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - +/******/ /******/ // Flag the module as loaded /******/ module.loaded = true; - +/******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } - - +/******/ +/******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; - +/******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; - +/******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; - +/******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) @@ -62,16 +62,16 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { 'use strict'; - + var React = __webpack_require__(2); var emptyFunction = function(){}; var assign = __webpack_require__(3); var classNames = __webpack_require__(4); - + // // Helpers. See Element definition below this section. // - + function createUIEvent(draggable) { // State changes are often (but not always!) async. We want the latest value. var state = draggable._pendingState || draggable.state; @@ -83,28 +83,28 @@ return /******/ (function(modules) { // webpackBootstrap } }; } - + function canDragY(draggable) { return draggable.props.axis === 'both' || draggable.props.axis === 'y'; } - + function canDragX(draggable) { return draggable.props.axis === 'both' || draggable.props.axis === 'x'; } - + function isFunction(func) { return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; } - + // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc function findInArray(array, callback) { for (var i = 0, length = array.length; i < length; i++) { if (callback.apply(callback, [array[i], i, array])) return array[i]; } } - + function matchesSelector(el, selector) { var method = findInArray([ 'matches', @@ -115,10 +115,10 @@ return /******/ (function(modules) { // webpackBootstrap ], function(method){ return isFunction(el[method]); }); - + return el[method].call(el, selector); } - + /** * simple abstraction for dragging events names * */ @@ -134,10 +134,10 @@ return /******/ (function(modules) { // webpackBootstrap end: 'mouseup' } }; - + // Default to mouse events var dragEventFor = eventsFor['mouse']; - + /** * get {clientX, clientY} positions of control * */ @@ -148,7 +148,7 @@ return /******/ (function(modules) { // webpackBootstrap clientY: position.clientY }; } - + function addEvent(el, event, handler) { if (!el) { return; } if (el.attachEvent) { @@ -159,7 +159,7 @@ return /******/ (function(modules) { // webpackBootstrap el['on' + event] = handler; } } - + function removeEvent(el, event, handler) { if (!el) { return; } if (el.detachEvent) { @@ -170,7 +170,7 @@ return /******/ (function(modules) { // webpackBootstrap el['on' + event] = null; } } - + function outerHeight(node) { // This is deliberately excluding margin for our calculations, since we are using // offsetTop which is including margin. See getBoundPosition @@ -180,7 +180,7 @@ return /******/ (function(modules) { // webpackBootstrap height += int(computedStyle.borderBottomWidth); return height; } - + function outerWidth(node) { // This is deliberately excluding margin for our calculations, since we are using // offsetLeft which is including margin. See getBoundPosition @@ -197,7 +197,7 @@ return /******/ (function(modules) { // webpackBootstrap height -= int(computedStyle.paddingBottom); return height; } - + function innerWidth(node) { var width = node.clientWidth; var computedStyle = window.getComputedStyle(node); @@ -205,20 +205,20 @@ return /******/ (function(modules) { // webpackBootstrap width -= int(computedStyle.paddingRight); return width; } - + function isNum(num) { return typeof num === 'number' && !isNaN(num); } - + function int(a) { return parseInt(a, 10); } - + function getBoundPosition(draggable, clientX, clientY) { var bounds = JSON.parse(JSON.stringify(draggable.props.bounds)); var node = draggable.getDOMNode(); var parent = node.parentNode; - + if (bounds === 'parent') { var nodeStyle = window.getComputedStyle(node); var parentStyle = window.getComputedStyle(parent); @@ -232,40 +232,40 @@ return /******/ (function(modules) { // webpackBootstrap bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop }; } - + // Keep x and y below right and bottom limits... if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right); if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom); - + // But above left and top limits. if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left); if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top); - + return [clientX, clientY]; } - + function snapToGrid(grid, pendingX, pendingY) { var x = Math.round(pendingX / grid[0]) * grid[0]; var y = Math.round(pendingY / grid[1]) * grid[1]; return [x, y]; } - + // Useful for preventing blue highlights all over everything when dragging. var userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' + '-o-user-select:none;-ms-user-select:none;'; - + function addUserSelectStyles(draggable) { if (!draggable.props.enableUserSelectHack) return; var style = document.body.getAttribute('style') || ''; document.body.setAttribute('style', style + userSelectStyle); } - + function removeUserSelectStyles(draggable) { if (!draggable.props.enableUserSelectHack) return; var style = document.body.getAttribute('style') || ''; document.body.setAttribute('style', style.replace(userSelectStyle, '')); } - + function createCSSTransform(style) { // Replace unitless items with px var x = style.x + 'px'; @@ -278,19 +278,19 @@ return /******/ (function(modules) { // webpackBootstrap MozTransform: 'translate(' + x + ',' + y + ')' }; } - - + + // // End Helpers. // - + // // Define // - + module.exports = React.createClass({ displayName: 'Draggable', - + propTypes: { /** * `axis` determines which axis the draggable can move. @@ -302,7 +302,7 @@ return /******/ (function(modules) { // webpackBootstrap * Defaults to 'both'. */ axis: React.PropTypes.oneOf(['both', 'x', 'y']), - + /** * `bounds` determines the range of movement available to the element. * Available values are: @@ -338,14 +338,14 @@ return /******/ (function(modules) { // webpackBootstrap }), React.PropTypes.oneOf(['parent', false]) ]), - + /** * By default, we add 'user-select:none' attributes to the document body * to prevent ugly text selection during drag. If this is causing problems * for your app, set this to `false`. */ enableUserSelectHack: React.PropTypes.bool, - + /** * `handle` specifies a selector to be used as the handle that initiates drag. * @@ -367,7 +367,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ handle: React.PropTypes.string, - + /** * `cancel` specifies a selector to be used to prevent drag initialization. * @@ -389,7 +389,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ cancel: React.PropTypes.string, - + /** * `grid` specifies the x and y that dragging should snap to. * @@ -408,7 +408,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ grid: React.PropTypes.arrayOf(React.PropTypes.number), - + /** * `start` specifies the x and y that the dragged item should start at * @@ -430,14 +430,14 @@ return /******/ (function(modules) { // webpackBootstrap x: React.PropTypes.number, y: React.PropTypes.number }), - + /** * `moveOnStartChange`, if true (default false) will move the element if the `start` * property changes. */ moveOnStartChange: React.PropTypes.bool, - - + + /** * `zIndex` specifies the zIndex to use while dragging. * @@ -456,7 +456,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ zIndex: React.PropTypes.number, - + /** * Called when dragging starts. * If this function returns the boolean false, dragging will be canceled. @@ -477,7 +477,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ onStart: React.PropTypes.func, - + /** * Called while dragging. * If this function returns the boolean false, dragging will be canceled. @@ -498,7 +498,7 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ onDrag: React.PropTypes.func, - + /** * Called when dragging stops. * @@ -518,28 +518,28 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ onStop: React.PropTypes.func, - + /** * A workaround option which can be passed if onMouseDown needs to be accessed, * since it'll always be blocked (due to that there's internal use of onMouseDown) */ onMouseDown: React.PropTypes.func, }, - + componentWillReceiveProps: function(newProps) { // React to changes in the 'start' param. if (newProps.moveOnStartChange && newProps.start) { this.setState(this.getInitialState(newProps)); } }, - + componentWillUnmount: function() { // Remove any leftover event handlers - removeEvent(window, dragEventFor['move'], this.handleDrag); - removeEvent(window, dragEventFor['end'], this.handleDragEnd); + removeEvent(document, dragEventFor['move'], this.handleDrag); + removeEvent(document, dragEventFor['end'], this.handleDragEnd); removeUserSelectStyles(this); }, - + getDefaultProps: function () { return { axis: 'both', @@ -557,42 +557,42 @@ return /******/ (function(modules) { // webpackBootstrap onMouseDown: emptyFunction }; }, - + getInitialState: function (props) { // Handle call from CWRP props = props || this.props; return { // Whether or not we are currently dragging. dragging: false, - + // Offset between start top/left and mouse top/left while dragging. offsetX: 0, offsetY: 0, - + // Current transform x and y. clientX: props.start.x, clientY: props.start.y }; }, - + handleDragStart: function (e) { // Make it possible to attach event handlers on top of this one this.props.onMouseDown(e); - + // Short circuit if handle or cancel prop was provided and selector doesn't match if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) || (this.props.cancel && matchesSelector(e.target, this.props.cancel))) { return; } - + // Call event handler. If it returns explicit false, cancel. var shouldStart = this.props.onStart(e, createUIEvent(this)); if (shouldStart === false) return; - + var dragPoint = getControlPosition(e); - + // Add a style to the body to disable user-select. This prevents text from // being selected all over the page. addUserSelectStyles(this); - + // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us // to drag elements around even if they have been moved, without issue. @@ -601,63 +601,63 @@ return /******/ (function(modules) { // webpackBootstrap offsetX: dragPoint.clientX - this.state.clientX, offsetY: dragPoint.clientY - this.state.clientY }); - - + + // Add event handlers - addEvent(window, dragEventFor['move'], this.handleDrag); - addEvent(window, dragEventFor['end'], this.handleDragEnd); + addEvent(document, dragEventFor['move'], this.handleDrag); + addEvent(document, dragEventFor['end'], this.handleDragEnd); }, - + handleDragEnd: function (e) { // Short circuit if not currently dragging if (!this.state.dragging) { return; } - + removeUserSelectStyles(this); - + // Turn off dragging this.setState({ dragging: false }); - + // Call event handler this.props.onStop(e, createUIEvent(this)); - + // Remove event handlers - removeEvent(window, dragEventFor['move'], this.handleDrag); - removeEvent(window, dragEventFor['end'], this.handleDragEnd); + removeEvent(document, dragEventFor['move'], this.handleDrag); + removeEvent(document, dragEventFor['end'], this.handleDragEnd); }, - + handleDrag: function (e) { var dragPoint = getControlPosition(e); - + // Calculate X and Y var clientX = dragPoint.clientX - this.state.offsetX; var clientY = dragPoint.clientY - this.state.offsetY; - + // Snap to grid if prop has been provided if (Array.isArray(this.props.grid)) { var coords = snapToGrid(this.props.grid, clientX, clientY); clientX = coords[0], clientY = coords[1]; } - + if (this.props.bounds) { var pos = getBoundPosition(this, clientX, clientY); clientX = pos[0], clientY = pos[1]; } - + // Call event handler. If it returns explicit false, cancel. var shouldUpdate = this.props.onDrag(e, createUIEvent(this)); if (shouldUpdate === false) return this.handleDragEnd(); - + // Update transform this.setState({ clientX: clientX, clientY: clientY }); }, - + onMouseDown: function(ev) { // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled. // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable. @@ -665,22 +665,22 @@ return /******/ (function(modules) { // webpackBootstrap if (dragEventFor == eventsFor['touch']) { return ev.preventDefault(); } - + return this.handleDragStart.apply(this, arguments); }, - + onTouchStart: function(ev) { // We're on a touch device now, so change the event handlers dragEventFor = eventsFor['touch']; - + return this.handleDragStart.apply(this, arguments); }, - + render: function () { // Create style object. We extend from existing styles so we don't // remove anything already set (like background, color, etc). var childStyle = this.props.children.props.style || {}; - + // Add a CSS transform to move the element around. This allows us to move the element around // without worrying about whether or not it is relatively or absolutely positioned. // If the item you are dragging already has a transform set, wrap it in a so @@ -690,37 +690,37 @@ return /******/ (function(modules) { // webpackBootstrap x: canDragX(this) ? this.state.clientX : 0, - + // Set top if vertical drag is enabled y: canDragY(this) ? this.state.clientY : 0 }); - + // Workaround IE pointer events; see #51 // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 var touchHacks = { touchAction: 'none' }; - + var style = assign({}, childStyle, transform, touchHacks); - + // Set zIndex if currently dragging and prop has been provided if (this.state.dragging && !isNaN(this.props.zIndex)) { style.zIndex = this.props.zIndex; } - + var className = classNames((this.props.children.props.className || ''), 'react-draggable', { 'react-draggable-dragging': this.state.dragging, 'react-draggable-dragged': this.state.dragged }); - + // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.cloneElement(React.Children.only(this.props.children), { style: style, className: className, - + onMouseDown: this.onMouseDown, onTouchStart: this.onTouchStart, onMouseUp: this.handleDragEnd, @@ -741,29 +741,29 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { 'use strict'; - + function ToObject(val) { if (val == null) { throw new TypeError('Object.assign cannot be called with null or undefined'); } - + return Object(val); } - + module.exports = Object.assign || function (target, source) { var from; var keys; var to = ToObject(target); - + for (var s = 1; s < arguments.length; s++) { from = arguments[s]; keys = Object.keys(Object(from)); - + for (var i = 0; i < keys.length; i++) { to[keys[i]] = from[keys[i]]; } } - + return to; }; @@ -777,17 +777,17 @@ return /******/ (function(modules) { // webpackBootstrap Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ - + function classNames() { var classes = ''; var arg; - + for (var i = 0; i < arguments.length; i++) { arg = arguments[i]; if (!arg) { continue; } - + if ('string' === typeof arg || 'number' === typeof arg) { classes += ' ' + arg; } else if (Object.prototype.toString.call(arg) === '[object Array]') { @@ -803,12 +803,12 @@ return /******/ (function(modules) { // webpackBootstrap } return classes.substr(1); } - + // safely export classNames for node / browserify if (typeof module !== 'undefined' && module.exports) { module.exports = classNames; } - + // safely export classNames for RequireJS if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { @@ -820,4 +820,5 @@ return /******/ (function(modules) { // webpackBootstrap /***/ } /******/ ]) }); -; \ No newline at end of file +; +//# sourceMappingURL=react-draggable.map \ No newline at end of file From 6174d8b0f8c188e09973b782d0cf39d683f2c72a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 3 Jun 2015 18:22:13 -0500 Subject: [PATCH 055/412] Add resetState() instance method that parents can call. --- README.md | 17 ++++++++++++++++- lib/draggable.js | 9 +++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6921eecb..f6407ad1 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Props: **`cancel`**: specifies a selector to be used to prevent drag initialization. **`grid`**: specifies the x and y that dragging should snap to. - + **`bounds`**: specifies movement boundaries. Accepted values: - `parent` restricts movement within the node's offsetParent (nearest node with position relative or absolute), or - An object with `left, top, right, and bottom` properties. These indicate how far in each direction the draggable can be moved. See [example/index.html](https://github.com/mzabriskie/react-draggable/blob/master/example/index.html) for more on this. @@ -113,6 +113,21 @@ var App = React.createClass({ React.renderComponent(, document.body); ``` +## State Problems? + +`` is a stateful component. This means that it is storing its current drag offsets in its internal state. +This can cause problems with certain integrations. For example, if you change the position of the element manually, +`` can get into trouble as it assumes a translation in the DOM. If you see an element jump around the page +when you click it, this is affecting you. + +This is an unfortunate side-effect of dragging, which is inherently stateful. + +If you move the element manually, you have two options: + +1. Feed the `` an `x` and `y` parameter in the `start` param, and change it as you go while setting +`moveOnStartChange` to `true`, or, +2. When moving the ``, ref the element and +[call `resetState()`](https://github.com/STRML/react-resizable/blob/master/lib/Resizable.jsx#L48). ## Contributing diff --git a/lib/draggable.js b/lib/draggable.js index 0c026148..6cf4b313 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -613,6 +613,15 @@ module.exports = React.createClass({ return this.handleDragStart.apply(this, arguments); }, + // Intended for use by a parent component. Resets internal state on this component. Useful for + // and other components in case this element is manually resized and start/moveOnStartChange + // don't work for you. + resetState: function() { + this.setState({ + offsetX: 0, offsetY: 0, clientX: 0, clientY: 0 + }); + }, + render: function () { // Create style object. We extend from existing styles so we don't // remove anything already set (like background, color, etc). From e9cbc340858d9fdaa7207e5f71d796dde92329b0 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 3 Jun 2015 18:23:33 -0500 Subject: [PATCH 056/412] release v0.8.1 --- CHANGELOG.md | 4 ++++ bower.json | 2 +- dist/react-draggable.js | 9 +++++++++ dist/react-draggable.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.map | 2 +- package.json | 2 +- 7 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0aa7cd28..8e845b48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -93,3 +93,7 @@ - Touch/mouse events rework. Fixes #51, #37, and #43, as well as IE11 support. - Moved mousemove/mouseup and touch event handlers to document from window. Fixes IE9/10 support. IE8 is still not supported, as it is not supported by React. + +### 0.8.1 (June 3, 2015) + +- Add `resetState()` instance method for use by parents. See README ("State Problems?"). diff --git a/bower.json b/bower.json index e5df13bf..3fbc4ed8 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.8.0", + "version": "0.8.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" diff --git a/dist/react-draggable.js b/dist/react-draggable.js index df70d098..840f09dd 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -676,6 +676,15 @@ return /******/ (function(modules) { // webpackBootstrap return this.handleDragStart.apply(this, arguments); }, + // Intended for use by a parent component. Resets internal state on this component. Useful for + // and other components in case this element is manually resized and start/moveOnStartChange + // don't work for you. + resetState: function() { + this.setState({ + offsetX: 0, offsetY: 0, clientX: 0, clientY: 0 + }); + }, + render: function () { // Create style object. We extend from existing styles so we don't // remove anything already set (like background, color, etc). diff --git a/dist/react-draggable.map b/dist/react-draggable.map index e00cf2e7..0f6fe994 100644 --- a/dist/react-draggable.map +++ b/dist/react-draggable.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap eeb5bc5902914d87840e",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;OAChC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC7B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QAC/B,CAAC;OACF,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;;AAEA,KAAI,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap eeb5bc5902914d87840e\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n};\n\n// Default to mouse events\nvar dragEventFor = eventsFor['mouse'];\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(document, dragEventFor['move'], this.handleDrag);\n addEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n onMouseDown: function(ev) {\n // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled.\n // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable.\n // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/\n if (dragEventFor == eventsFor['touch']) {\n return ev.preventDefault();\n }\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n onTouchStart: function(ev) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor['touch'];\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n var touchHacks = {\n touchAction: 'none'\n };\n\n var style = assign({}, childStyle, transform, touchHacks);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap cc0df94b0e423e4eea63",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;OAChC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC7B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;SAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QAC/B,CAAC;OACF,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAK,CAAC;AACN;AACA;AACA;AACA;AACA;;AAEA,KAAI,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;KAEI,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;OAC3B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;OACzB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/B,MAAK,CAAC;AACN;AACA;AACA;AACA;;AAEA,KAAI,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AAChC;AACA;AACA;AACA;;KAEI,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;AACrC,IAAG;;AAEH,GAAE,yBAAyB,EAAE,SAAS,QAAQ,EAAE;;KAE5C,IAAI,QAAQ,CAAC,iBAAiB,IAAI,QAAQ,CAAC,KAAK,EAAE;OAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;MAC/C;AACL,IAAG;;AAEH,GAAE,oBAAoB,EAAE,WAAW;;KAE/B,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC7D,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAC/D,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACjC,IAAG;;GAED,eAAe,EAAE,YAAY;KAC3B,OAAO;OACL,IAAI,EAAE,MAAM;OACZ,MAAM,EAAE,KAAK;OACb,MAAM,EAAE,IAAI;OACZ,MAAM,EAAE,IAAI;OACZ,IAAI,EAAE,IAAI;OACV,iBAAiB,EAAE,KAAK;OACxB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;OACnB,MAAM,EAAE,GAAG;OACX,oBAAoB,EAAE,IAAI;OAC1B,OAAO,EAAE,aAAa;OACtB,MAAM,EAAE,aAAa;OACrB,MAAM,EAAE,aAAa;OACrB,WAAW,EAAE,aAAa;MAC3B,CAAC;AACN,IAAG;;AAEH,GAAE,eAAe,EAAE,UAAU,KAAK,EAAE;;KAEhC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;AAChC,KAAI,OAAO;;AAEX,OAAM,QAAQ,EAAE,KAAK;AACrB;;AAEA,OAAM,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5B;;OAEM,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;MAC/C,CAAC;AACN,IAAG;;AAEH,GAAE,eAAe,EAAE,UAAU,CAAC,EAAE;;AAEhC,KAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B;;KAEI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;OACrE,OAAO;AACb,MAAK;AACL;;KAEI,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,KAAI,IAAI,WAAW,KAAK,KAAK,EAAE,OAAO;;AAEtC,KAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1C;AACA;;AAEA,KAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC9B;AACA;AACA;;KAEI,IAAI,CAAC,QAAQ,CAAC;OACZ,QAAQ,EAAE,IAAI;OACd,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;OAC/C,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;AACrD,MAAK,CAAC,CAAC;AACP;AACA;;KAEI,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1D,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAChE,IAAG;;AAEH,GAAE,aAAa,EAAE,UAAU,CAAC,EAAE;;KAE1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;OACxB,OAAO;AACb,MAAK;;AAEL,KAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACjC;;KAEI,IAAI,CAAC,QAAQ,CAAC;OACZ,QAAQ,EAAE,KAAK;AACrB,MAAK,CAAC,CAAC;AACP;;AAEA,KAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C;;KAEI,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC7D,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACnE,IAAG;;GAED,UAAU,EAAE,UAAU,CAAC,EAAE;AAC3B,KAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1C;;KAEI,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACzD,KAAI,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACzD;;KAEI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;OAClC,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;OAC3D,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAK;;KAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;OACrB,IAAI,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;OACnD,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,MAAK;AACL;;KAEI,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,KAAI,IAAI,YAAY,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;AAC5D;;KAEI,IAAI,CAAC,QAAQ,CAAC;OACZ,OAAO,EAAE,OAAO;OAChB,OAAO,EAAE,OAAO;MACjB,CAAC,CAAC;AACP,IAAG;;AAEH,GAAE,WAAW,EAAE,SAAS,EAAE,EAAE;AAC5B;AACA;;KAEI,IAAI,YAAY,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE;OACtC,OAAO,EAAE,CAAC,cAAc,EAAE,CAAC;AACjC,MAAK;;KAED,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,IAAG;;AAEH,GAAE,YAAY,EAAE,SAAS,EAAE,EAAE;;AAE7B,KAAI,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;;KAElC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,IAAG;AACH;AACA;AACA;;GAEE,UAAU,EAAE,WAAW;KACrB,IAAI,CAAC,QAAQ,CAAC;OACZ,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;MAC/C,CAAC,CAAC;AACP,IAAG;;AAEH,GAAE,MAAM,EAAE,YAAY;AACtB;;AAEA,KAAI,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC3D;AACA;AACA;AACA;;AAEA,KAAI,IAAI,SAAS,GAAG,kBAAkB,CAAC;;OAEjC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,OAAO;AAC1B,SAAQ,CAAC;AACT;;OAEM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,OAAO;SAClB,CAAC;AACT,MAAK,CAAC,CAAC;AACP;AACA;;KAEI,IAAI,UAAU,GAAG;OACf,WAAW,EAAE,MAAM;AACzB,MAAK,CAAC;;AAEN,KAAI,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC9D;;KAEI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;OACpD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACvC,MAAK;;KAED,IAAI,SAAS,GAAG,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,GAAG,iBAAiB,EAAE;OACzF,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;OAC/C,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;AACnD,MAAK,CAAC,CAAC;AACP;AACA;;KAEI,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;OAClE,KAAK,EAAE,KAAK;AAClB,OAAM,SAAS,EAAE,SAAS;;OAEpB,WAAW,EAAE,IAAI,CAAC,WAAW;OAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;OAC/B,SAAS,EAAE,IAAI,CAAC,aAAa;OAC7B,UAAU,EAAE,IAAI,CAAC,aAAa;MAC/B,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;;;;;;;ACnqBH,gD;;;;;;ACAA,aAAY,CAAC;;AAEb,UAAS,QAAQ,CAAC,GAAG,EAAE;EACtB,IAAI,GAAG,IAAI,IAAI,EAAE;GAChB,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;AAC/E,GAAE;;EAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,EAAC;;AAED,OAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE,MAAM,EAAE;EAC3D,IAAI,IAAI,CAAC;EACT,IAAI,IAAI,CAAC;AACV,EAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;;EAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;GAC1C,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACtB,GAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;GAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACrC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B;AACH,GAAE;;EAED,OAAO,EAAE,CAAC;EACV,CAAC;;;;;;;ACzBF;AACA;AACA;;AAEA,GAAE;;AAEF,UAAS,UAAU,GAAG;EACrB,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,EAAC,IAAI,GAAG,CAAC;;EAER,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;GAC1C,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;GACnB,IAAI,CAAC,GAAG,EAAE;IACT,SAAS;AACZ,IAAG;;GAED,IAAI,QAAQ,KAAK,OAAO,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IACvD,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC;IACrB,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,EAAE;IACpE,OAAO,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IACnC,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;KACpB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;MAC1C,SAAS;MACT;KACD,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC;KACrB;IACD;GACD;EACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAC;;AAED,kDAAiD;AACjD,KAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;EACpD,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;AAC7B,EAAC;;AAED,0CAAyC;AACzC,KAAI,IAA2C,EAAE;EAChD,iCAAqB,EAAE,kCAAE,WAAW;GACnC,OAAO,UAAU,CAAC;GAClB,+IAAC,CAAC;EACH","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap cc0df94b0e423e4eea63\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n};\n\n// Default to mouse events\nvar dragEventFor = eventsFor['mouse'];\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(document, dragEventFor['move'], this.handleDrag);\n addEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n onMouseDown: function(ev) {\n // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled.\n // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable.\n // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/\n if (dragEventFor == eventsFor['touch']) {\n return ev.preventDefault();\n }\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n onTouchStart: function(ev) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor['touch'];\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n // Intended for use by a parent component. Resets internal state on this component. Useful for\n // and other components in case this element is manually resized and start/moveOnStartChange\n // don't work for you.\n resetState: function() {\n this.setState({\n offsetX: 0, offsetY: 0, clientX: 0, clientY: 0\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n var touchHacks = {\n touchAction: 'none'\n };\n\n var style = assign({}, childStyle, transform, touchHacks);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 14ac01fd..1aacdcc9 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("React")):"function"==typeof define&&define.amd?define(["React"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("React")):root.ReactDraggable=factory(root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){module.exports=__webpack_require__(1)},function(module,exports,__webpack_require__){"use strict";function createUIEvent(draggable){var state=draggable._pendingState||draggable.state;return{node:draggable.getDOMNode(),position:{top:state.clientY,left:state.clientX}}}function canDragY(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis}function canDragX(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function findInArray(array,callback){for(var i=0,length=array.length;length>i;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4),eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}},dragEventFor=eventsFor.mouse,userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(document,dragEventFor.move,this.handleDrag),removeEvent(document,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(document,dragEventFor.move,this.handleDrag),addEvent(document,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(document,dragEventFor.move,this.handleDrag),removeEvent(document,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},onMouseDown:function(ev){return dragEventFor==eventsFor.touch?ev.preventDefault():this.handleDragStart.apply(this,arguments)},onTouchStart:function(ev){return dragEventFor=eventsFor.touch,this.handleDragStart.apply(this,arguments)},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),touchHacks={touchAction:"none"},style=assign({},childStyle,transform,touchHacks);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;si;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function matchesSelector(el,selector){var method=findInArray(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(method){return isFunction(el[method])});return el[method].call(el,selector)}function getControlPosition(e){var position=e.touches&&e.touches[0]||e;return{clientX:position.clientX,clientY:position.clientY}}function addEvent(el,event,handler){el&&(el.attachEvent?el.attachEvent("on"+event,handler):el.addEventListener?el.addEventListener(event,handler,!0):el["on"+event]=handler)}function removeEvent(el,event,handler){el&&(el.detachEvent?el.detachEvent("on"+event,handler):el.removeEventListener?el.removeEventListener(event,handler,!0):el["on"+event]=null)}function outerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height+=int(computedStyle.borderTopWidth),height+=int(computedStyle.borderBottomWidth)}function outerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width+=int(computedStyle.borderLeftWidth),width+=int(computedStyle.borderRightWidth)}function innerHeight(node){var height=node.clientHeight,computedStyle=window.getComputedStyle(node);return height-=int(computedStyle.paddingTop),height-=int(computedStyle.paddingBottom)}function innerWidth(node){var width=node.clientWidth,computedStyle=window.getComputedStyle(node);return width-=int(computedStyle.paddingLeft),width-=int(computedStyle.paddingRight)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function getBoundPosition(draggable,clientX,clientY){var bounds=JSON.parse(JSON.stringify(draggable.props.bounds)),node=draggable.getDOMNode(),parent=node.parentNode;if("parent"===bounds){var nodeStyle=window.getComputedStyle(node),parentStyle=window.getComputedStyle(parent);bounds={left:-node.offsetLeft+int(parentStyle.paddingLeft)+int(nodeStyle.borderLeftWidth)+int(nodeStyle.marginLeft),top:-node.offsetTop+int(parentStyle.paddingTop)+int(nodeStyle.borderTopWidth)+int(nodeStyle.marginTop),right:innerWidth(parent)-outerWidth(node)-node.offsetLeft,bottom:innerHeight(parent)-outerHeight(node)-node.offsetTop}}return isNum(bounds.right)&&(clientX=Math.min(clientX,bounds.right)),isNum(bounds.bottom)&&(clientY=Math.min(clientY,bounds.bottom)),isNum(bounds.left)&&(clientX=Math.max(clientX,bounds.left)),isNum(bounds.top)&&(clientY=Math.max(clientY,bounds.top)),[clientX,clientY]}function snapToGrid(grid,pendingX,pendingY){var x=Math.round(pendingX/grid[0])*grid[0],y=Math.round(pendingY/grid[1])*grid[1];return[x,y]}function addUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style+userSelectStyle)}}function removeUserSelectStyles(draggable){if(draggable.props.enableUserSelectHack){var style=document.body.getAttribute("style")||"";document.body.setAttribute("style",style.replace(userSelectStyle,""))}}function createCSSTransform(style){var x=style.x+"px",y=style.y+"px";return{transform:"translate("+x+","+y+")",WebkitTransform:"translate("+x+","+y+")",OTransform:"translate("+x+","+y+")",msTransform:"translate("+x+","+y+")",MozTransform:"translate("+x+","+y+")"}}var React=__webpack_require__(2),emptyFunction=function(){},assign=__webpack_require__(3),classNames=__webpack_require__(4),eventsFor={touch:{start:"touchstart",move:"touchmove",end:"touchend"},mouse:{start:"mousedown",move:"mousemove",end:"mouseup"}},dragEventFor=eventsFor.mouse,userSelectStyle=";user-select: none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;";module.exports=React.createClass({displayName:"Draggable",propTypes:{axis:React.PropTypes.oneOf(["both","x","y"]),bounds:React.PropTypes.oneOfType([React.PropTypes.shape({left:React.PropTypes.Number,right:React.PropTypes.Number,top:React.PropTypes.Number,bottom:React.PropTypes.Number}),React.PropTypes.oneOf(["parent",!1])]),enableUserSelectHack:React.PropTypes.bool,handle:React.PropTypes.string,cancel:React.PropTypes.string,grid:React.PropTypes.arrayOf(React.PropTypes.number),start:React.PropTypes.shape({x:React.PropTypes.number,y:React.PropTypes.number}),moveOnStartChange:React.PropTypes.bool,zIndex:React.PropTypes.number,onStart:React.PropTypes.func,onDrag:React.PropTypes.func,onStop:React.PropTypes.func,onMouseDown:React.PropTypes.func},componentWillReceiveProps:function(newProps){newProps.moveOnStartChange&&newProps.start&&this.setState(this.getInitialState(newProps))},componentWillUnmount:function(){removeEvent(document,dragEventFor.move,this.handleDrag),removeEvent(document,dragEventFor.end,this.handleDragEnd),removeUserSelectStyles(this)},getDefaultProps:function(){return{axis:"both",bounds:!1,handle:null,cancel:null,grid:null,moveOnStartChange:!1,start:{x:0,y:0},zIndex:0/0,enableUserSelectHack:!0,onStart:emptyFunction,onDrag:emptyFunction,onStop:emptyFunction,onMouseDown:emptyFunction}},getInitialState:function(props){return props=props||this.props,{dragging:!1,offsetX:0,offsetY:0,clientX:props.start.x,clientY:props.start.y}},handleDragStart:function(e){if(this.props.onMouseDown(e),!(this.props.handle&&!matchesSelector(e.target,this.props.handle)||this.props.cancel&&matchesSelector(e.target,this.props.cancel))){var shouldStart=this.props.onStart(e,createUIEvent(this));if(shouldStart!==!1){var dragPoint=getControlPosition(e);addUserSelectStyles(this),this.setState({dragging:!0,offsetX:dragPoint.clientX-this.state.clientX,offsetY:dragPoint.clientY-this.state.clientY}),addEvent(document,dragEventFor.move,this.handleDrag),addEvent(document,dragEventFor.end,this.handleDragEnd)}}},handleDragEnd:function(e){this.state.dragging&&(removeUserSelectStyles(this),this.setState({dragging:!1}),this.props.onStop(e,createUIEvent(this)),removeEvent(document,dragEventFor.move,this.handleDrag),removeEvent(document,dragEventFor.end,this.handleDragEnd))},handleDrag:function(e){var dragPoint=getControlPosition(e),clientX=dragPoint.clientX-this.state.offsetX,clientY=dragPoint.clientY-this.state.offsetY;if(Array.isArray(this.props.grid)){var coords=snapToGrid(this.props.grid,clientX,clientY);clientX=coords[0],clientY=coords[1]}if(this.props.bounds){var pos=getBoundPosition(this,clientX,clientY);clientX=pos[0],clientY=pos[1]}var shouldUpdate=this.props.onDrag(e,createUIEvent(this));return shouldUpdate===!1?this.handleDragEnd():void this.setState({clientX:clientX,clientY:clientY})},onMouseDown:function(ev){return dragEventFor==eventsFor.touch?ev.preventDefault():this.handleDragStart.apply(this,arguments)},onTouchStart:function(ev){return dragEventFor=eventsFor.touch,this.handleDragStart.apply(this,arguments)},resetState:function(){this.setState({offsetX:0,offsetY:0,clientX:0,clientY:0})},render:function(){var childStyle=this.props.children.props.style||{},transform=createCSSTransform({x:canDragX(this)?this.state.clientX:0,y:canDragY(this)?this.state.clientY:0}),touchHacks={touchAction:"none"},style=assign({},childStyle,transform,touchHacks);this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=classNames(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return React.cloneElement(React.Children.only(this.props.children),{style:style,className:className,onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.handleDragEnd,onTouchEnd:this.handleDragEnd})}})},function(module,exports,__webpack_require__){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){"use strict";function ToObject(val){if(null==val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}module.exports=Object.assign||function(target,source){for(var from,keys,to=ToObject(target),s=1;s\n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(document, dragEventFor['move'], this.handleDrag);\n addEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n onMouseDown: function(ev) {\n // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled.\n // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable.\n // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/\n if (dragEventFor == eventsFor['touch']) {\n return ev.preventDefault();\n }\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n onTouchStart: function(ev) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor['touch'];\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n var touchHacks = {\n touchAction: 'none'\n };\n\n var style = assign({}, childStyle, transform, touchHacks);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file +{"version":3,"file":"./dist/react-draggable.js","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap cc0df94b0e423e4eea63",".././index.js",".././lib/draggable.js","../external \"React\"",".././~/object-assign/index.js",".././~/classnames/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","createUIEvent","draggable","state","_pendingState","node","getDOMNode","position","top","clientY","left","clientX","canDragY","props","axis","canDragX","isFunction","func","Object","prototype","toString","findInArray","array","callback","i","length","apply","matchesSelector","el","selector","method","getControlPosition","e","touches","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","int","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","isNum","num","isNaN","a","parseInt","getBoundPosition","bounds","JSON","parse","stringify","parent","parentNode","nodeStyle","parentStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","bottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","x","round","y","addUserSelectStyles","enableUserSelectHack","style","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","createCSSTransform","transform","WebkitTransform","OTransform","msTransform","MozTransform","React","emptyFunction","assign","classNames","eventsFor","touch","start","move","end","mouse","dragEventFor","createClass","displayName","propTypes","PropTypes","oneOf","oneOfType","shape","Number","bool","handle","string","cancel","arrayOf","number","moveOnStartChange","zIndex","onStart","onDrag","onStop","onMouseDown","componentWillReceiveProps","newProps","setState","getInitialState","componentWillUnmount","handleDrag","handleDragEnd","getDefaultProps","NaN","dragging","offsetX","offsetY","handleDragStart","target","shouldStart","dragPoint","Array","isArray","coords","pos","shouldUpdate","ev","preventDefault","arguments","onTouchStart","resetState","render","childStyle","children","touchHacks","touchAction","className","react-draggable-dragging","react-draggable-dragged","dragged","cloneElement","Children","only","onMouseUp","onTouchEnd","ToObject","val","TypeError","source","from","keys","to","s","arg","classes","key","hasOwnProperty","substr","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"React\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap cc0df94b0e423e4eea63\n **/","module.exports = require('./lib/draggable');\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nvar React = require('react');\nvar emptyFunction = function(){};\nvar assign = require('object-assign');\nvar classNames = require('classnames');\n\n//\n// Helpers. See Element definition below this section.\n//\n\nfunction createUIEvent(draggable) {\n // State changes are often (but not always!) async. We want the latest value.\n var state = draggable._pendingState || draggable.state;\n return {\n node: draggable.getDOMNode(),\n position: {\n top: state.clientY,\n left: state.clientX\n }\n };\n}\n\nfunction canDragY(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'y';\n}\n\nfunction canDragX(draggable) {\n return draggable.props.axis === 'both' ||\n draggable.props.axis === 'x';\n}\n\nfunction isFunction(func) {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array, callback) {\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction matchesSelector(el, selector) {\n var method = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n return isFunction(el[method]);\n });\n\n return el[method].call(el, selector);\n}\n\n/**\n * simple abstraction for dragging events names\n * */\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup'\n }\n};\n\n// Default to mouse events\nvar dragEventFor = eventsFor['mouse'];\n\n/**\n * get {clientX, clientY} positions of control\n * */\nfunction getControlPosition(e) {\n var position = (e.touches && e.touches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\nfunction addEvent(el, event, handler) {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el, event, handler) {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node) {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node) {\n var height = node.clientHeight;\n var computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node) {\n var width = node.clientWidth;\n var computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nfunction isNum(num) {\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a) {\n return parseInt(a, 10);\n}\n\nfunction getBoundPosition(draggable, clientX, clientY) {\n var bounds = JSON.parse(JSON.stringify(draggable.props.bounds));\n var node = draggable.getDOMNode();\n var parent = node.parentNode;\n\n if (bounds === 'parent') {\n var nodeStyle = window.getComputedStyle(node);\n var parentStyle = window.getComputedStyle(parent);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(parentStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(parentStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(parent) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(parent) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nfunction snapToGrid(grid, pendingX, pendingY) {\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\n// Useful for preventing blue highlights all over everything when dragging.\nvar userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' +\n '-o-user-select:none;-ms-user-select:none;';\n\nfunction addUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nfunction removeUserSelectStyles(draggable) {\n if (!draggable.props.enableUserSelectHack) return;\n var style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nfunction createCSSTransform(style) {\n // Replace unitless items with px\n var x = style.x + 'px';\n var y = style.y + 'px';\n return {\n transform: 'translate(' + x + ',' + y + ')',\n WebkitTransform: 'translate(' + x + ',' + y + ')',\n OTransform: 'translate(' + x + ',' + y + ')',\n msTransform: 'translate(' + x + ',' + y + ')',\n MozTransform: 'translate(' + x + ',' + y + ')'\n };\n}\n\n\n//\n// End Helpers.\n//\n\n//\n// Define \n//\n\nmodule.exports = React.createClass({\n displayName: 'Draggable',\n\n propTypes: {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n *\n * Defaults to 'both'.\n */\n axis: React.PropTypes.oneOf(['both', 'x', 'y']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: React.PropTypes.oneOfType([\n React.PropTypes.shape({\n left: React.PropTypes.Number,\n right: React.PropTypes.Number,\n top: React.PropTypes.Number,\n bottom: React.PropTypes.Number\n }),\n React.PropTypes.oneOf(['parent', false])\n ]),\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: React.PropTypes.bool,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: React.PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: React.PropTypes.string,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: React.PropTypes.arrayOf(React.PropTypes.number),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: React.PropTypes.shape({\n x: React.PropTypes.number,\n y: React.PropTypes.number\n }),\n\n /**\n * `moveOnStartChange`, if true (default false) will move the element if the `start`\n * property changes.\n */\n moveOnStartChange: React.PropTypes.bool,\n\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * var App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: React.PropTypes.number,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: React.PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: React.PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: React.PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: React.PropTypes.func,\n },\n\n componentWillReceiveProps: function(newProps) {\n // React to changes in the 'start' param.\n if (newProps.moveOnStartChange && newProps.start) {\n this.setState(this.getInitialState(newProps));\n }\n },\n\n componentWillUnmount: function() {\n // Remove any leftover event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n removeUserSelectStyles(this);\n },\n\n getDefaultProps: function () {\n return {\n axis: 'both',\n bounds: false,\n handle: null,\n cancel: null,\n grid: null,\n moveOnStartChange: false,\n start: {x: 0, y: 0},\n zIndex: NaN,\n enableUserSelectHack: true,\n onStart: emptyFunction,\n onDrag: emptyFunction,\n onStop: emptyFunction,\n onMouseDown: emptyFunction\n };\n },\n\n getInitialState: function (props) {\n // Handle call from CWRP\n props = props || this.props;\n return {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Offset between start top/left and mouse top/left while dragging.\n offsetX: 0, offsetY: 0,\n\n // Current transform x and y.\n clientX: props.start.x, clientY: props.start.y\n };\n },\n\n handleDragStart: function (e) {\n // Make it possible to attach event handlers on top of this one\n this.props.onMouseDown(e);\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match\n if ((this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldStart = this.props.onStart(e, createUIEvent(this));\n if (shouldStart === false) return;\n\n var dragPoint = getControlPosition(e);\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n addUserSelectStyles(this);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n offsetX: dragPoint.clientX - this.state.clientX,\n offsetY: dragPoint.clientY - this.state.clientY\n });\n\n\n // Add event handlers\n addEvent(document, dragEventFor['move'], this.handleDrag);\n addEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDragEnd: function (e) {\n // Short circuit if not currently dragging\n if (!this.state.dragging) {\n return;\n }\n\n removeUserSelectStyles(this);\n\n // Turn off dragging\n this.setState({\n dragging: false\n });\n\n // Call event handler\n this.props.onStop(e, createUIEvent(this));\n\n // Remove event handlers\n removeEvent(document, dragEventFor['move'], this.handleDrag);\n removeEvent(document, dragEventFor['end'], this.handleDragEnd);\n },\n\n handleDrag: function (e) {\n var dragPoint = getControlPosition(e);\n\n // Calculate X and Y\n var clientX = dragPoint.clientX - this.state.offsetX;\n var clientY = dragPoint.clientY - this.state.offsetY;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n var coords = snapToGrid(this.props.grid, clientX, clientY);\n clientX = coords[0], clientY = coords[1];\n }\n\n if (this.props.bounds) {\n var pos = getBoundPosition(this, clientX, clientY);\n clientX = pos[0], clientY = pos[1];\n }\n\n // Call event handler. If it returns explicit false, cancel.\n var shouldUpdate = this.props.onDrag(e, createUIEvent(this));\n if (shouldUpdate === false) return this.handleDragEnd();\n\n // Update transform\n this.setState({\n clientX: clientX,\n clientY: clientY\n });\n },\n\n onMouseDown: function(ev) {\n // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled.\n // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable.\n // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/\n if (dragEventFor == eventsFor['touch']) {\n return ev.preventDefault();\n }\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n onTouchStart: function(ev) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor['touch'];\n\n return this.handleDragStart.apply(this, arguments);\n },\n\n // Intended for use by a parent component. Resets internal state on this component. Useful for\n // and other components in case this element is manually resized and start/moveOnStartChange\n // don't work for you.\n resetState: function() {\n this.setState({\n offsetX: 0, offsetY: 0, clientX: 0, clientY: 0\n });\n },\n\n render: function () {\n // Create style object. We extend from existing styles so we don't\n // remove anything already set (like background, color, etc).\n var childStyle = this.props.children.props.style || {};\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n var transform = createCSSTransform({\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n 0,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n 0\n });\n\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n var touchHacks = {\n touchAction: 'none'\n };\n\n var style = assign({}, childStyle, transform, touchHacks);\n\n // Set zIndex if currently dragging and prop has been provided\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n var className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: style,\n className: className,\n\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd\n });\n }\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/draggable.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = Object.keys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/object-assign/index.js\n **/","/*!\n Copyright (c) 2015 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames() {\n\tvar classes = '';\n\tvar arg;\n\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\targ = arguments[i];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ('string' === typeof arg || 'number' === typeof arg) {\n\t\t\tclasses += ' ' + arg;\n\t\t} else if (Object.prototype.toString.call(arg) === '[object Array]') {\n\t\t\tclasses += ' ' + classNames.apply(null, arg);\n\t\t} else if ('object' === typeof arg) {\n\t\t\tfor (var key in arg) {\n\t\t\t\tif (!arg.hasOwnProperty(key) || !arg[key]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tclasses += ' ' + key;\n\t\t\t}\n\t\t}\n\t}\n\treturn classes.substr(1);\n}\n\n// safely export classNames for node / browserify\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = classNames;\n}\n\n// safely export classNames for RequireJS\nif (typeof define !== 'undefined' && define.amd) {\n\tdefine('classnames', [], function() {\n\t\treturn classNames;\n\t});\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/classnames/index.js\n **/"]} \ No newline at end of file diff --git a/package.json b/package.json index 3bec58f3..e7b0c260 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "0.8.0", + "version": "0.8.1", "description": "React draggable component", "main": "index.js", "scripts": { From af90faed3d6748abe84e4f2212619c977b37f58d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 3 Jun 2015 19:04:54 -0500 Subject: [PATCH 057/412] Minimize use of unneeded browser prefixes --- lib/draggable.js | 55 ++++++++++++++++++++++++------------------------ lib/getPrefix.js | 13 ++++++++++++ 2 files changed, 41 insertions(+), 27 deletions(-) create mode 100644 lib/getPrefix.js diff --git a/lib/draggable.js b/lib/draggable.js index 6cf4b313..85d9170b 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -4,6 +4,7 @@ var React = require('react'); var emptyFunction = function(){}; var assign = require('object-assign'); var classNames = require('classnames'); +var browserPrefix = require('./getPrefix')(); // // Helpers. See Element definition below this section. @@ -21,14 +22,12 @@ function createUIEvent(draggable) { }; } -function canDragY(draggable) { - return draggable.props.axis === 'both' || - draggable.props.axis === 'y'; +function canDragX(draggable) { + return draggable.props.axis === 'both' || draggable.props.axis === 'x'; } -function canDragX(draggable) { - return draggable.props.axis === 'both' || - draggable.props.axis === 'x'; +function canDragY(draggable) { + return draggable.props.axis === 'both' || draggable.props.axis === 'y'; } function isFunction(func) { @@ -44,14 +43,14 @@ function findInArray(array, callback) { function matchesSelector(el, selector) { var method = findInArray([ - 'matches', - 'webkitMatchesSelector', - 'mozMatchesSelector', - 'msMatchesSelector', - 'oMatchesSelector' - ], function(method){ - return isFunction(el[method]); - }); + 'matches', + 'webkitMatchesSelector', + 'mozMatchesSelector', + 'msMatchesSelector', + 'oMatchesSelector' + ], function(method){ + return isFunction(el[method]); + }); return el[method].call(el, selector); } @@ -73,7 +72,7 @@ var eventsFor = { }; // Default to mouse events -var dragEventFor = eventsFor['mouse']; +var dragEventFor = eventsFor.mouse; /** * get {clientX, clientY} positions of control @@ -214,7 +213,7 @@ function createCSSTransform(style) { msTransform: 'translate(' + x + ',' + y + ')', MozTransform: 'translate(' + x + ',' + y + ')' }; -} + } // @@ -460,7 +459,7 @@ module.exports = React.createClass({ * A workaround option which can be passed if onMouseDown needs to be accessed, * since it'll always be blocked (due to that there's internal use of onMouseDown) */ - onMouseDown: React.PropTypes.func, + onMouseDown: React.PropTypes.func }, componentWillReceiveProps: function(newProps) { @@ -472,8 +471,8 @@ module.exports = React.createClass({ componentWillUnmount: function() { // Remove any leftover event handlers - removeEvent(document, dragEventFor['move'], this.handleDrag); - removeEvent(document, dragEventFor['end'], this.handleDragEnd); + removeEvent(document, dragEventFor.move, this.handleDrag); + removeEvent(document, dragEventFor.end, this.handleDragEnd); removeUserSelectStyles(this); }, @@ -541,8 +540,8 @@ module.exports = React.createClass({ // Add event handlers - addEvent(document, dragEventFor['move'], this.handleDrag); - addEvent(document, dragEventFor['end'], this.handleDragEnd); + addEvent(document, dragEventFor.move, this.handleDrag); + addEvent(document, dragEventFor.end, this.handleDragEnd); }, handleDragEnd: function (e) { @@ -562,8 +561,8 @@ module.exports = React.createClass({ this.props.onStop(e, createUIEvent(this)); // Remove event handlers - removeEvent(document, dragEventFor['move'], this.handleDrag); - removeEvent(document, dragEventFor['end'], this.handleDragEnd); + removeEvent(document, dragEventFor.move, this.handleDrag); + removeEvent(document, dragEventFor.end, this.handleDragEnd); }, handleDrag: function (e) { @@ -576,12 +575,14 @@ module.exports = React.createClass({ // Snap to grid if prop has been provided if (Array.isArray(this.props.grid)) { var coords = snapToGrid(this.props.grid, clientX, clientY); - clientX = coords[0], clientY = coords[1]; + clientX = coords[0]; + clientY = coords[1]; } if (this.props.bounds) { var pos = getBoundPosition(this, clientX, clientY); - clientX = pos[0], clientY = pos[1]; + clientX = pos[0]; + clientY = pos[1]; } // Call event handler. If it returns explicit false, cancel. @@ -599,7 +600,7 @@ module.exports = React.createClass({ // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled. // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable. // More on ghost clicks: http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/ - if (dragEventFor == eventsFor['touch']) { + if (dragEventFor === eventsFor.touch) { return ev.preventDefault(); } @@ -608,7 +609,7 @@ module.exports = React.createClass({ onTouchStart: function(ev) { // We're on a touch device now, so change the event handlers - dragEventFor = eventsFor['touch']; + dragEventFor = eventsFor.touch; return this.handleDragStart.apply(this, arguments); }, diff --git a/lib/getPrefix.js b/lib/getPrefix.js new file mode 100644 index 00000000..fb8304b7 --- /dev/null +++ b/lib/getPrefix.js @@ -0,0 +1,13 @@ +module.exports = function() { + if (typeof window === 'undefined') return ''; + // Thanks David Walsh + var styles = window.getComputedStyle(document.documentElement, ''), + pre = (Array.prototype.slice + .call(styles) + .join('') + .match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o']) + )[1]; + // 'ms' is not titlecased + if (pre === 'ms') return pre; + return pre.slice(0, 1).toUpperCase() + pre.slice(1); +}; From 177306550e0333ea4eef6387d8b5d1c2580d3c55 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 3 Jun 2015 19:05:32 -0500 Subject: [PATCH 058/412] Linting --- .eslintrc | 16 ++++++++++++++++ lib/draggable.js | 26 +++++++++++++++----------- 2 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 .eslintrc diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..117beb68 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,16 @@ +{ + "rules": { + "strict": 0, + "quotes": ["single"], + "curly": "multi-line", + "camelcase": 0, + "no-use-before-define": "nofunc", + "no-underscore-dangle": 0, + "no-unused-vars": 0, + "new-cap": 0 + }, + env: { + "browser": true, + "node": true + } +} diff --git a/lib/draggable.js b/lib/draggable.js index 85d9170b..c13b0035 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -41,8 +41,10 @@ function findInArray(array, callback) { } } +var matchesSelectorFunc = ''; function matchesSelector(el, selector) { - var method = findInArray([ + if (!matchesSelectorFunc) { + matchesSelectorFunc = findInArray([ 'matches', 'webkitMatchesSelector', 'mozMatchesSelector', @@ -51,8 +53,9 @@ function matchesSelector(el, selector) { ], function(method){ return isFunction(el[method]); }); + } - return el[method].call(el, selector); + return el[matchesSelectorFunc].call(el, selector); } /** @@ -187,8 +190,10 @@ function snapToGrid(grid, pendingX, pendingY) { } // Useful for preventing blue highlights all over everything when dragging. -var userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' + - '-o-user-select:none;-ms-user-select:none;'; +var userSelectStyle = ';user-select: none;'; +if (browserPrefix) { + userSelectStyle += '-' + browserPrefix.toLowerCase() + '-user-select: none;'; +} function addUserSelectStyles(draggable) { if (!draggable.props.enableUserSelectHack) return; @@ -206,14 +211,13 @@ function createCSSTransform(style) { // Replace unitless items with px var x = style.x + 'px'; var y = style.y + 'px'; - return { - transform: 'translate(' + x + ',' + y + ')', - WebkitTransform: 'translate(' + x + ',' + y + ')', - OTransform: 'translate(' + x + ',' + y + ')', - msTransform: 'translate(' + x + ',' + y + ')', - MozTransform: 'translate(' + x + ',' + y + ')' - }; + var out = {transform: 'translate(' + x + ',' + y + ')'}; + // Add single prefixed property as well + if (browserPrefix) { + out[browserPrefix + 'Transform'] = out.transform; } + return out; +} // From f4db57b3ec151b22823ef71e5b98bc7735eb07d1 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 3 Jun 2015 19:25:19 -0500 Subject: [PATCH 059/412] Handle scrolling while dragging. Fixes #60. --- lib/draggable.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/draggable.js b/lib/draggable.js index c13b0035..db96622f 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -539,11 +539,14 @@ module.exports = React.createClass({ this.setState({ dragging: true, offsetX: dragPoint.clientX - this.state.clientX, - offsetY: dragPoint.clientY - this.state.clientY + offsetY: dragPoint.clientY - this.state.clientY, + scrollX: document.body.scrollLeft, + scrollY: document.body.scrollTop }); // Add event handlers + addEvent(document, 'scroll', this.handleScroll); addEvent(document, dragEventFor.move, this.handleDrag); addEvent(document, dragEventFor.end, this.handleDragEnd); }, @@ -565,6 +568,7 @@ module.exports = React.createClass({ this.props.onStop(e, createUIEvent(this)); // Remove event handlers + removeEvent(document, 'scroll', this.handleScroll); removeEvent(document, dragEventFor.move, this.handleDrag); removeEvent(document, dragEventFor.end, this.handleDragEnd); }, @@ -600,6 +604,19 @@ module.exports = React.createClass({ }); }, + handleScroll: function(e) { + var s = this.state, x = document.body.scrollLeft, y = document.body.scrollTop; + var offsetX = x - s.scrollX, offsetY = y - s.scrollY; + this.setState({ + scrollX: x, + scrollY: y, + clientX: s.clientX + offsetX, + clientY: s.clientY + offsetY, + offsetX: s.offsetX - offsetX, + offsetY: s.offsetY - offsetY + }); + }, + onMouseDown: function(ev) { // Prevent 'ghost click' which happens 300ms after touchstart if the event isn't cancelled. // We don't cancel the event on touchstart because of #37; we might want to make a scrollable item draggable. From 4f5685c0f668e785a0e60db8ca17b5efb8ac39bf Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 3 Jun 2015 19:30:00 -0500 Subject: [PATCH 060/412] Fix test broken by af90faed --- specs/draggable.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specs/draggable.spec.js b/specs/draggable.spec.js index 3df0b378..c332b27c 100644 --- a/specs/draggable.spec.js +++ b/specs/draggable.spec.js @@ -111,8 +111,8 @@ describe('react-draggable', function () { }); it('should add and remove user-select styles', function () { - var userSelectStyle = ';user-select: none;-webkit-user-select:none;-moz-user-select:none;' + - '-o-user-select:none;-ms-user-select:none;'; + // Karma runs in firefox in our tests + var userSelectStyle = ';user-select: none;-moz-user-select: none;'; drag = TestUtils.renderIntoDocument( From 52dae12fc65805269efab7cc7e3981936212affa Mon Sep 17 00:00:00 2001 From: Yotta Second Date: Tue, 16 Jun 2015 20:59:10 -0400 Subject: [PATCH 061/412] added multi-touch support --- lib/draggable.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/draggable.js b/lib/draggable.js index db96622f..d996e043 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -81,7 +81,7 @@ var dragEventFor = eventsFor.mouse; * get {clientX, clientY} positions of control * */ function getControlPosition(e) { - var position = (e.touches && e.touches[0]) || e; + var position = (e.targetTouches && e.targetTouches[0]) || e; return { clientX: position.clientX, clientY: position.clientY @@ -514,6 +514,11 @@ module.exports = React.createClass({ }, handleDragStart: function (e) { + // Set touch identifier in component state if this is a touch event + if(e.targetTouches){ + this.setState({identifier: e.targetTouches[0].identifier}); + } + // Make it possible to attach event handlers on top of this one this.props.onMouseDown(e); @@ -574,6 +579,10 @@ module.exports = React.createClass({ }, handleDrag: function (e) { + // Return if this is a touch event, but not the correct one for thiss element + if(e.targetTouches && (e.targetTouches[0].identifier != this.state.identifier)){ + return; + } var dragPoint = getControlPosition(e); // Calculate X and Y From fe5faf2ad10b65ae64e9c1c62678b5dce2f14a12 Mon Sep 17 00:00:00 2001 From: Yotta Second Date: Tue, 16 Jun 2015 21:16:30 -0400 Subject: [PATCH 062/412] fixed typo --- lib/draggable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/draggable.js b/lib/draggable.js index d996e043..a597546f 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -579,7 +579,7 @@ module.exports = React.createClass({ }, handleDrag: function (e) { - // Return if this is a touch event, but not the correct one for thiss element + // Return if this is a touch event, but not the correct one for this element if(e.targetTouches && (e.targetTouches[0].identifier != this.state.identifier)){ return; } From c36dbcde78e30e2f325e03fa2f35aaa724c1548f Mon Sep 17 00:00:00 2001 From: Yotta Second Date: Tue, 16 Jun 2015 21:37:02 -0400 Subject: [PATCH 063/412] only cancel touch events if it was the right touch --- lib/draggable.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/draggable.js b/lib/draggable.js index a597546f..2eba26f0 100644 --- a/lib/draggable.js +++ b/lib/draggable.js @@ -516,7 +516,7 @@ module.exports = React.createClass({ handleDragStart: function (e) { // Set touch identifier in component state if this is a touch event if(e.targetTouches){ - this.setState({identifier: e.targetTouches[0].identifier}); + this.setState({touchIdentifier: e.targetTouches[0].identifier}); } // Make it possible to attach event handlers on top of this one @@ -562,6 +562,11 @@ module.exports = React.createClass({ return; } + // Short circuit if this is not the correct touch event + if(e.changedTouches && (e.changedTouches[0].identifier != this.state.touchIdentifier)){ + return; + } + removeUserSelectStyles(this); // Turn off dragging @@ -580,7 +585,7 @@ module.exports = React.createClass({ handleDrag: function (e) { // Return if this is a touch event, but not the correct one for this element - if(e.targetTouches && (e.targetTouches[0].identifier != this.state.identifier)){ + if(e.targetTouches && (e.targetTouches[0].identifier != this.state.touchIdentifier)){ return; } var dragPoint = getControlPosition(e); From 49c822b83c94f75f68b36f913e51cb63892a7c16 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 23 Jun 2015 17:37:44 -0500 Subject: [PATCH 064/412] Convert project to and and ES6. is a new component with very minimal state that handles the bulk of what used to handle. It is intended for use in more advanced applications. Events thrown by include a position with simple deltas, and it is up to the application to translate the object based on those deltas. still maintains internal state based on position and should function identically to previous. Bugs: Grid snapping is broken because deltas don't accumulate. --- .eslintrc | 7 +- example/index.html | 4 +- index.js | 3 +- lib/Draggable.es6 | 247 ++++++++ lib/DraggableCore.es6 | 362 +++++++++++ lib/draggable.js | 712 ---------------------- lib/utils/domFns.es6 | 159 +++++ lib/{getPrefix.js => utils/getPrefix.es6} | 4 +- lib/utils/positionFns.es6 | 56 ++ lib/utils/shims.es6 | 29 + package.json | 9 +- webpack.config.js | 10 +- 12 files changed, 877 insertions(+), 725 deletions(-) create mode 100644 lib/Draggable.es6 create mode 100644 lib/DraggableCore.es6 delete mode 100644 lib/draggable.js create mode 100644 lib/utils/domFns.es6 rename lib/{getPrefix.js => utils/getPrefix.es6} (92%) create mode 100644 lib/utils/positionFns.es6 create mode 100644 lib/utils/shims.es6 diff --git a/.eslintrc b/.eslintrc index 117beb68..f98d5cb7 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,13 +1,16 @@ { + "parser": "babel-eslint", "rules": { "strict": 0, "quotes": ["single"], "curly": "multi-line", "camelcase": 0, + "comma-dangle": 1, "no-use-before-define": "nofunc", "no-underscore-dangle": 0, - "no-unused-vars": 0, - "new-cap": 0 + "no-unused-vars": 1, + "new-cap": 0, + "semi": 1 }, env: { "browser": true, diff --git a/example/index.html b/example/index.html index dfe76869..c8b02f2e 100644 --- a/example/index.html +++ b/example/index.html @@ -48,8 +48,8 @@ - - + + - + + + - - +
+ + From a398097ebcc2cbb4df5582a8a3f42f51d21745a0 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 11 Apr 2016 18:36:43 -0500 Subject: [PATCH 161/412] New method for tracking drag offsets respective to offsetParent. Removes scroll handler, makes it possible to scroll properly to any offsetParent, and fixes #151. --- example/index.html | 28 +++++++++++---------- lib/DraggableCore.es6 | 52 +++++++++------------------------------ lib/utils/domFns.es6 | 13 ++++++++++ lib/utils/positionFns.es6 | 21 +++++++--------- specs/draggable.spec.jsx | 10 +++++--- 5 files changed, 55 insertions(+), 69 deletions(-) diff --git a/example/index.html b/example/index.html index ee89a525..194374a5 100644 --- a/example/index.html +++ b/example/index.html @@ -133,19 +133,21 @@

React Draggable

I can only be moved 100px in any direction.
-
- -
- I can only be moved within my offsetParent.

- Both parent padding and child margin work properly. -
-
- -
- I also can only be moved within my offsetParent.

- Both parent padding and child margin work properly. -
-
+
+
+ +
+ I can only be moved within my offsetParent.

+ Both parent padding and child margin work properly. +
+
+ +
+ I also can only be moved within my offsetParent.

+ Both parent padding and child margin work properly. +
+
+
diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index d8d7b88f..88941216 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -243,7 +243,6 @@ export default class DraggableCore extends React.Component { removeEvent(document, eventsFor.touch.move, this.handleDrag); removeEvent(document, eventsFor.mouse.stop, this.handleDragStop); removeEvent(document, eventsFor.touch.stop, this.handleDragStop); - removeEvent(document, 'scroll', this.handleScroll); if (this.props.enableUserSelectHack) removeUserSelectStyles(); } @@ -273,10 +272,10 @@ export default class DraggableCore extends React.Component { if (this.props.enableUserSelectHack) addUserSelectStyles(); // Get the current drag point from the event. This is used as the offset. - let {clientX, clientY} = getControlPosition(e); + let {x, y} = getControlPosition(e, this); // Create an event object with all the data parents need to make a decision here. - let coreEvent = createCoreEvent(this, clientX, clientY); + let coreEvent = createCoreEvent(this, x, y); log('DraggableCore: handleDragStart: %j', coreEvent.position); @@ -292,15 +291,10 @@ export default class DraggableCore extends React.Component { this.setState({ dragging: true, - lastX: clientX, - lastY: clientY, - // Stored so we can adjust our offset if scrolled. - scrollX: document.body.scrollLeft, - scrollY: document.body.scrollTop + lastX: x, + lastY: y }); - // Translate el on page scroll. - addEvent(document, 'scroll', this.handleScroll); // Add events to the document directly so we catch when the user's mouse/touch moves outside of // this element. We use different events depending on whether or not we have detected that this // is a touch-capable device. @@ -312,21 +306,20 @@ export default class DraggableCore extends React.Component { // Return if this is a touch event, but not the correct one for this element if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return; - let {clientX, clientY} = getControlPosition(e); + let {x, y} = getControlPosition(e, this); // Snap to grid if prop has been provided if (Array.isArray(this.props.grid)) { - let deltaX = clientX - this.state.lastX, deltaY = clientY - this.state.lastY; + let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY; [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY); if (!deltaX && !deltaY) return; // skip useless drag - clientX = this.state.lastX + deltaX, clientY = this.state.lastY + deltaY; + x = this.state.lastX + deltaX, y = this.state.lastY + deltaY; } - const coreEvent = createCoreEvent(this, clientX, clientY); + const coreEvent = createCoreEvent(this, x, y); log('DraggableCore: handleDrag: %j', coreEvent.position); - // Call event handler. If it returns explicit false, trigger end. const shouldUpdate = this.props.onDrag(e, coreEvent); if (shouldUpdate === false) { @@ -335,8 +328,8 @@ export default class DraggableCore extends React.Component { } this.setState({ - lastX: clientX, - lastY: clientY + lastX: x, + lastY: y }); }; @@ -350,8 +343,8 @@ export default class DraggableCore extends React.Component { // Remove user-select hack if (this.props.enableUserSelectHack) removeUserSelectStyles(); - let {clientX, clientY} = getControlPosition(e); - const coreEvent = createCoreEvent(this, clientX, clientY); + let {x, y} = getControlPosition(e, this); + const coreEvent = createCoreEvent(this, x, y); log('DraggableCore: handleDragStop: %j', coreEvent.position); @@ -367,31 +360,10 @@ export default class DraggableCore extends React.Component { // Remove event handlers log('DraggableCore: Removing handlers'); - removeEvent(document, 'scroll', this.handleScroll); removeEvent(document, dragEventFor.move, this.handleDrag); removeEvent(document, dragEventFor.stop, this.handleDragStop); }; - // When the user scrolls, adjust internal state so the draggable moves along the page properly. - // This only fires when a drag is active. - handleScroll: EventHandler = (e) => { - const s = this.state, x = document.body.scrollLeft, y = document.body.scrollTop; - - // Create the usual event, but make the scroll offset our deltas. - let coreEvent = createCoreEvent(this); - coreEvent.position.deltaX = x - s.scrollX; - coreEvent.position.deltaY = y - s.scrollY; - - this.setState({ - lastX: s.lastX + coreEvent.position.deltaX, - lastY: s.lastY + coreEvent.position.deltaY, - scrollX: x, - scrollY: y - }); - - this.props.onDrag(e, coreEvent); - }; - onMouseDown: EventHandler = (e) => { dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index 7f6a25eb..f3026285 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -101,6 +101,19 @@ export function innerWidth(node: HTMLElement): number { return width; } +// Get from offsetParent +export function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): {x: number, y: number} { + const evt = e.targetTouches ? e.targetTouches[0] : e; + + const offsetParent = node.offsetParent || document.body; + const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect(); + + const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; + const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; + + return {x, y}; +} + export function createCSSTransform({x, y}: {x: number, y: number}): Object { // Replace unitless items with px return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'}; diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index c41c93a8..d2538790 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -1,12 +1,12 @@ // @flow -import React from 'react'; import {isNum, int} from './shims'; import ReactDOM from 'react-dom'; -import {innerWidth, innerHeight, outerWidth, outerHeight} from './domFns'; +import {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns'; import type Draggable from '../Draggable'; +import type DraggableCore from '../DraggableCore'; export type ControlPosition = { - clientX: number, clientY: number + x: number, y: number }; export type Bounds = { left: number, top: number, right: number, bottom: number @@ -59,21 +59,18 @@ export function snapToGrid(grid: [number, number], pendingX: number, pendingY: n return [x, y]; } -export function canDragX(draggable: React.Component): boolean { +export function canDragX(draggable: Draggable): boolean { return draggable.props.axis === 'both' || draggable.props.axis === 'x'; } -export function canDragY(draggable: React.Component): boolean { +export function canDragY(draggable: Draggable): boolean { return draggable.props.axis === 'both' || draggable.props.axis === 'y'; } -// Get {clientX, clientY} positions from event. -export function getControlPosition(e: Event): ControlPosition { - let position = (e.targetTouches && e.targetTouches[0]) || e; - return { - clientX: position.clientX, - clientY: position.clientY - }; +// Get {x, y} positions from event. +export function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition { + const node = ReactDOM.findDOMNode(draggableCore); + return offsetXYFromParentOf(e, node); } // A lot faster than stringify/parse diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 2e2beb88..9b391259 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -356,9 +356,10 @@ describe('react-draggable', function () { }); it('should modulate position on scroll', function (done) { - // This test fails in karma under PhantomJS & Firefox, scroll event quirks - var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; - if (!is_chrome) return done(); + // This test fails in karma under Chrome & Firefox, positioning quirks + // FIXME: Why? Chrome reports 2x scrollTo, Phantom reports 0x, Firefox reports 1x as it should + var is_ff = navigator.userAgent.toLowerCase().indexOf('Firefox') > -1; + if (!is_ff) return done(); var dragCalled = false; @@ -369,11 +370,12 @@ describe('react-draggable', function () { drag = TestUtils.renderIntoDocument(
); var node = ReactDOM.findDOMNode(drag); - TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); // start drag so window listener is up + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); expect(drag.state.dragging).toEqual(true); document.body.style.height = '10000px'; window.scrollTo(0, 500); + TestUtils.Simulate.mouseUp(node, {clientX: 0, clientY: 0}); setTimeout(function() { expect(dragCalled).toEqual(true); expect(drag.state.clientY).toEqual(500); From 541d6e9c9f8ec712df32b7e85d1df84066611061 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 11 Apr 2016 18:37:37 -0500 Subject: [PATCH 162/412] Fix user-select prefix finding in Firefox --- lib/utils/getPrefix.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/getPrefix.es6 b/lib/utils/getPrefix.es6 index 93503ae0..a8ea7fe3 100644 --- a/lib/utils/getPrefix.es6 +++ b/lib/utils/getPrefix.es6 @@ -11,7 +11,7 @@ export function getPrefix(prop: string='transform'): string { if (prop in style) return ''; for (let i = 0; i < prefixes.length; i++) { - if (browserPrefixToStyle(prop, prefixes[i]) in style) return prefixes[i]; + if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i]; } return ''; From 5bf8dfe11ca243dea55ff1da15b4edbad24595ad Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 11 Apr 2016 18:37:57 -0500 Subject: [PATCH 163/412] Should return Errors, not throw them, from PropTypes --- lib/utils/shims.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/shims.es6 b/lib/utils/shims.es6 index 2f80ea6c..0c6719b6 100644 --- a/lib/utils/shims.es6 +++ b/lib/utils/shims.es6 @@ -20,6 +20,6 @@ export function int(a: string): number { export function dontSetMe(props: Object, propName: string, componentName: string) { if (props[propName]) { - throw new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`); + return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`); } } From 0959b2757ffc2102a941b49cd117d5af6383fed7 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 13 Apr 2016 16:51:19 -0500 Subject: [PATCH 164/412] release v1.4.0-beta1 --- CHANGELOG.md | 5 ++ bower.json | 4 +- dist/react-draggable.js | 100 +++++++++++++------------------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 +- 7 files changed, 51 insertions(+), 68 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b96fe0c..9eceffc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 1.4.0-beta1 (Apr 13, 2016) + +- Major improvements to drag tracking that now support even nested scroll boxes. + - This revision is being done as a pre-release to ensure there are no unforeseen issues with the offset changes. + ### 1.3.7 (Apr 8, 2016) - Fix `user-select` prefixing, which may be different than the prefix required for `transform`. diff --git a/bower.json b/bower.json index 8d199f47..6125d5fb 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "1.3.7", + "version": "1.4.0-beta1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie" @@ -24,4 +24,4 @@ "webpack.config.js", "package.json" ] -} \ No newline at end of file +} diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 99c3dbba..3fff8a8e 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -478,6 +478,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.outerWidth = outerWidth; exports.innerHeight = innerHeight; exports.innerWidth = innerWidth; + exports.offsetXYFromParentOf = offsetXYFromParentOf; exports.createCSSTransform = createCSSTransform; exports.createSVGTransform = createSVGTransform; exports.addUserSelectStyles = addUserSelectStyles; @@ -576,6 +577,19 @@ return /******/ (function(modules) { // webpackBootstrap return width; } + // Get from offsetParent + function offsetXYFromParentOf(e, node) { + var evt = e.targetTouches ? e.targetTouches[0] : e; + + var offsetParent = node.offsetParent || document.body; + var offsetParentRect = node.offsetParent === document.body ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); + + var x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; + var y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; + + return { x: x, y: y }; + } + function createCSSTransform(_ref) { var x = _ref.x; var y = _ref.y; @@ -691,7 +705,7 @@ return /******/ (function(modules) { // webpackBootstrap function dontSetMe(props, propName, componentName) { if (props[propName]) { - throw new Error('Invalid prop ' + propName + ' passed to ' + componentName + ' - do not set this, set it on the child.'); + return new Error('Invalid prop ' + propName + ' passed to ' + componentName + ' - do not set this, set it on the child.'); } } @@ -722,7 +736,7 @@ return /******/ (function(modules) { // webpackBootstrap if (prop in style) return ''; for (var i = 0; i < prefixes.length; i++) { - if (browserPrefixToStyle(prop, prefixes[i]) in style) return prefixes[i]; + if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i]; } return ''; @@ -772,10 +786,6 @@ return /******/ (function(modules) { // webpackBootstrap exports.canDragY = canDragY; exports.getControlPosition = getControlPosition; - var _react = __webpack_require__(2); - - var _react2 = _interopRequireDefault(_react); - var _shims = __webpack_require__(6); var _reactDom = __webpack_require__(3); @@ -840,13 +850,10 @@ return /******/ (function(modules) { // webpackBootstrap return draggable.props.axis === 'both' || draggable.props.axis === 'y'; } - // Get {clientX, clientY} positions from event. - function getControlPosition(e) { - var position = e.targetTouches && e.targetTouches[0] || e; - return { - clientX: position.clientX, - clientY: position.clientY - }; + // Get {x, y} positions from event. + function getControlPosition(e, draggableCore) { + var node = _reactDom2.default.findDOMNode(draggableCore); + return (0, _domFns.offsetXYFromParentOf)(e, node); } // A lot faster than stringify/parse @@ -962,14 +969,14 @@ return /******/ (function(modules) { // webpackBootstrap // Get the current drag point from the event. This is used as the offset. - var _getControlPosition = (0, _positionFns.getControlPosition)(e); + var _getControlPosition = (0, _positionFns.getControlPosition)(e, _this); - var clientX = _getControlPosition.clientX; - var clientY = _getControlPosition.clientY; + var x = _getControlPosition.x; + var y = _getControlPosition.y; // Create an event object with all the data parents need to make a decision here. - var coreEvent = (0, _domFns.createCoreEvent)(_this, clientX, clientY); + var coreEvent = (0, _domFns.createCoreEvent)(_this, x, y); (0, _log2.default)('DraggableCore: handleDragStart: %j', coreEvent.position); @@ -984,15 +991,10 @@ return /******/ (function(modules) { // webpackBootstrap _this.setState({ dragging: true, - lastX: clientX, - lastY: clientY, - // Stored so we can adjust our offset if scrolled. - scrollX: document.body.scrollLeft, - scrollY: document.body.scrollTop + lastX: x, + lastY: y }); - // Translate el on page scroll. - (0, _domFns.addEvent)(document, 'scroll', _this.handleScroll); // Add events to the document directly so we catch when the user's mouse/touch moves outside of // this element. We use different events depending on whether or not we have detected that this // is a touch-capable device. @@ -1002,16 +1004,16 @@ return /******/ (function(modules) { // webpackBootstrap // Return if this is a touch event, but not the correct one for this element if (e.targetTouches && e.targetTouches[0].identifier !== _this.state.touchIdentifier) return; - var _getControlPosition2 = (0, _positionFns.getControlPosition)(e); + var _getControlPosition2 = (0, _positionFns.getControlPosition)(e, _this); - var clientX = _getControlPosition2.clientX; - var clientY = _getControlPosition2.clientY; + var x = _getControlPosition2.x; + var y = _getControlPosition2.y; // Snap to grid if prop has been provided if (Array.isArray(_this.props.grid)) { - var deltaX = clientX - _this.state.lastX, - deltaY = clientY - _this.state.lastY; + var deltaX = x - _this.state.lastX, + deltaY = y - _this.state.lastY; var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY); @@ -1021,10 +1023,10 @@ return /******/ (function(modules) { // webpackBootstrap deltaY = _snapToGrid2[1]; if (!deltaX && !deltaY) return; // skip useless drag - clientX = _this.state.lastX + deltaX, clientY = _this.state.lastY + deltaY; + x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY; } - var coreEvent = (0, _domFns.createCoreEvent)(_this, clientX, clientY); + var coreEvent = (0, _domFns.createCoreEvent)(_this, x, y); (0, _log2.default)('DraggableCore: handleDrag: %j', coreEvent.position); @@ -1036,8 +1038,8 @@ return /******/ (function(modules) { // webpackBootstrap } _this.setState({ - lastX: clientX, - lastY: clientY + lastX: x, + lastY: y }); }, _this.handleDragStop = function (e) { if (!_this.state.dragging) return; @@ -1049,12 +1051,12 @@ return /******/ (function(modules) { // webpackBootstrap // Remove user-select hack if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(); - var _getControlPosition3 = (0, _positionFns.getControlPosition)(e); + var _getControlPosition3 = (0, _positionFns.getControlPosition)(e, _this); - var clientX = _getControlPosition3.clientX; - var clientY = _getControlPosition3.clientY; + var x = _getControlPosition3.x; + var y = _getControlPosition3.y; - var coreEvent = (0, _domFns.createCoreEvent)(_this, clientX, clientY); + var coreEvent = (0, _domFns.createCoreEvent)(_this, x, y); (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent.position); @@ -1070,27 +1072,8 @@ return /******/ (function(modules) { // webpackBootstrap // Remove event handlers (0, _log2.default)('DraggableCore: Removing handlers'); - (0, _domFns.removeEvent)(document, 'scroll', _this.handleScroll); (0, _domFns.removeEvent)(document, dragEventFor.move, _this.handleDrag); (0, _domFns.removeEvent)(document, dragEventFor.stop, _this.handleDragStop); - }, _this.handleScroll = function (e) { - var s = _this.state, - x = document.body.scrollLeft, - y = document.body.scrollTop; - - // Create the usual event, but make the scroll offset our deltas. - var coreEvent = (0, _domFns.createCoreEvent)(_this); - coreEvent.position.deltaX = x - s.scrollX; - coreEvent.position.deltaY = y - s.scrollY; - - _this.setState({ - lastX: s.lastX + coreEvent.position.deltaX, - lastY: s.lastY + coreEvent.position.deltaY, - scrollX: x, - scrollY: y - }); - - _this.props.onDrag(e, coreEvent); }, _this.onMouseDown = function (e) { dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse @@ -1121,14 +1104,9 @@ return /******/ (function(modules) { // webpackBootstrap (0, _domFns.removeEvent)(document, eventsFor.touch.move, this.handleDrag); (0, _domFns.removeEvent)(document, eventsFor.mouse.stop, this.handleDragStop); (0, _domFns.removeEvent)(document, eventsFor.touch.stop, this.handleDragStop); - (0, _domFns.removeEvent)(document, 'scroll', this.handleScroll); if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(); } - // When the user scrolls, adjust internal state so the draggable moves along the page properly. - // This only fires when a drag is active. - - // Same as onMouseDown (start drag), but now consider this a touch device. }, { diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index b9ef6148..f30a1f7e 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b0462296c00c45ab0142",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b0462296c00c45ab0142\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport {default as React, PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createUIEvent, createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\n\nimport type {CoreEvent} from './utils/domFns';\nexport type CoreEventHandler = (e: Event, coreEvent: CoreEvent) => void | false;\nexport type DraggableState = {\n dragging: boolean,\n dragged: boolean,\n clientX: number, clientY: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.Number,\n right: PropTypes.Number,\n top: PropTypes.Number,\n bottom: PropTypes.Number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: PropTypes.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n start: {x: 0, y: 0},\n zIndex: NaN\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n clientX: this.props.start.x, clientY: this.props.start.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: CoreEventHandler = (e, coreEvent) => {\n log('Draggable: onDragStart: %j', coreEvent.position);\n\n // Short-circuit if user's callback killed it.\n let shouldStart = this.props.onStart(e, createUIEvent(this, coreEvent));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: CoreEventHandler = (e, coreEvent) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreEvent.position);\n\n let uiEvent = createUIEvent(this, coreEvent);\n\n let newState = {\n clientX: uiEvent.position.left,\n clientY: uiEvent.position.top\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n let {clientX, clientY} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.clientX += this.state.slackX;\n newState.clientY += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n [newState.clientX, newState.clientY] = getBoundPosition(this, newState.clientX, newState.clientY);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (clientX - newState.clientX);\n newState.slackY = this.state.slackY + (clientY - newState.clientY);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiEvent.position.left = clientX;\n uiEvent.position.top = clientY;\n uiEvent.deltaX = newState.clientX - this.state.clientX;\n uiEvent.deltaY = newState.clientY - this.state.clientY;\n }\n\n // Short-circuit if user's callback killed it.\n let shouldUpdate = this.props.onDrag(e, uiEvent);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: CoreEventHandler = (e, coreEvent) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n let shouldStop = this.props.onStop(e, createUIEvent(this, coreEvent));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreEvent.position);\n\n this.setState({\n dragging: false,\n slackX: 0,\n slackY: 0\n });\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n this.props.start.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n this.props.start.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n style = createCSSTransform(transformOpts);\n }\n\n // zIndex option\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n // Mark with class while dragging\n let className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, isNum, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\nimport ReactDOM from 'react-dom';\n\nimport type Draggable from '../Draggable';\nimport type DraggableCore from '../DraggableCore';\n\nexport type CoreEvent = {\n node: HTMLElement,\n position: {\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n clientX: number, clientY: number\n }\n};\n\nexport type UIEvent = {\n node: HTMLElement,\n position: {\n left: number, top: number\n },\n deltaX: number, deltaY: number\n};\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: HTMLElement, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n let computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n let computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n let computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n let computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n let style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n let style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n// Create an event exposed by \nexport function createCoreEvent(draggable: DraggableCore, clientX: number, clientY: number): CoreEvent {\n // State changes are often (but not always!) async. We want the latest value.\n let state = draggable._pendingState || draggable.state;\n let isStart = !isNum(state.lastX);\n\n return {\n node: ReactDOM.findDOMNode(draggable),\n position: isStart ?\n // If this is our first move, use the clientX and clientY as last coords.\n {\n deltaX: 0, deltaY: 0,\n lastX: clientX, lastY: clientY,\n clientX: clientX, clientY: clientY\n } :\n // Otherwise calculate proper values.\n {\n deltaX: clientX - state.lastX, deltaY: clientY - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n clientX: clientX, clientY: clientY\n }\n };\n}\n\n// Create an event exposed by \nexport function createUIEvent(draggable: Draggable, coreEvent: CoreEvent): UIEvent {\n return {\n node: ReactDOM.findDOMNode(draggable),\n position: {\n left: draggable.state.clientX + coreEvent.position.deltaX,\n top: draggable.state.clientY + coreEvent.position.deltaY\n },\n deltaX: coreEvent.position.deltaX,\n deltaY: coreEvent.position.deltaY\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n throw new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToStyle(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport React from 'react';\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nexport type ControlPosition = {\n clientX: number, clientY: number\n};\nexport type Bounds = {\n left: number, top: number, right: number, bottom: number\n};\n\nexport function getBoundPosition(draggable: Draggable, clientX: number, clientY: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [clientX, clientY];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n let node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n let nodeStyle = window.getComputedStyle(node);\n let boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n let x = Math.round(pendingX / grid[0]) * grid[0];\n let y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: React.Component): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: React.Component): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {clientX, clientY} positions from event.\nexport function getControlPosition(e: Event): ControlPosition {\n let position = (e.targetTouches && e.targetTouches[0]) || e;\n return {\n clientX: position.clientX,\n clientY: position.clientY\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport {default as React, PropTypes} from 'react';\nimport {matchesSelector, createCoreEvent, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype EventHandler = (e: Event) => void;\ntype CoreState = {\n dragging: boolean,\n lastX: ?number,\n lastY: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I can't be dragged
\n *
\n * );\n * }\n * });\n * ```\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: null, lastY: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n removeEvent(document, 'scroll', this.handleScroll);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n let {clientX, clientY} = getControlPosition(e);\n\n // Create an event object with all the data parents need to make a decision here.\n let coreEvent = createCoreEvent(this, clientX, clientY);\n\n log('DraggableCore: handleDragStart: %j', coreEvent.position);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n let shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: clientX,\n lastY: clientY,\n // Stored so we can adjust our offset if scrolled.\n scrollX: document.body.scrollLeft,\n scrollY: document.body.scrollTop\n });\n\n // Translate el on page scroll.\n addEvent(document, 'scroll', this.handleScroll);\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {clientX, clientY} = getControlPosition(e);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = clientX - this.state.lastX, deltaY = clientY - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n clientX = this.state.lastX + deltaX, clientY = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreEvent(this, clientX, clientY);\n\n log('DraggableCore: handleDrag: %j', coreEvent.position);\n\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop({});\n return;\n }\n\n this.setState({\n lastX: clientX,\n lastY: clientY\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n let {clientX, clientY} = getControlPosition(e);\n const coreEvent = createCoreEvent(this, clientX, clientY);\n\n log('DraggableCore: handleDragStop: %j', coreEvent.position);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: null,\n lastY: null\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, 'scroll', this.handleScroll);\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n // When the user scrolls, adjust internal state so the draggable moves along the page properly.\n // This only fires when a drag is active.\n handleScroll: EventHandler = (e) => {\n const s = this.state, x = document.body.scrollLeft, y = document.body.scrollTop;\n\n // Create the usual event, but make the scroll offset our deltas.\n let coreEvent = createCoreEvent(this);\n coreEvent.position.deltaX = x - s.scrollX;\n coreEvent.position.deltaY = y - s.scrollY;\n\n this.setState({\n lastX: s.lastX + coreEvent.position.deltaX,\n lastY: s.lastY + coreEvent.position.deltaY,\n scrollX: x,\n scrollY: y\n });\n\n this.props.onDrag(e, coreEvent);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 764021ff5f433cecdf2e",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACtCA,QAAO,OAAP,GAAiB,oBAAQ,CAAR,EAA2B,OAA3B;AACjB,QAAO,OAAP,CAAe,aAAf,GAA+B,oBAAQ,CAAR,EAA+B,OAA/B,C;;;;;;;;;;;;;;;;;;ACA/B;;;;AACA;;;;AAEA;;;;AACA;;AACA;;AACA;;AACA;;;;AACA;;;;;;;;;;;;;;;;;;KAgBqB;;;;;;;;;;;;;;wMAqHnB,QAAwB;;AAEtB,iBAAU,KAAV;;;AAGA,gBAAS,KAAT;;;AAGA,gBAAS,MAAK,KAAL,CAAW,KAAX,CAAiB,CAAjB,EAAoB,SAAS,MAAK,KAAL,CAAW,KAAX,CAAiB,CAAjB;;;AAGtC,eAAQ,CAAR,EAAW,QAAQ,CAAR;;;AAGX,qBAAc,KAAd;cAcF,cAAgC,UAAC,CAAD,EAAI,SAAJ,EAAkB;AAChD,0BAAI,4BAAJ,EAAkC,UAAU,QAAV,CAAlC;;;AADgD,WAI5C,cAAc,MAAK,KAAL,CAAW,OAAX,CAAmB,CAAnB,EAAsB,kCAAoB,SAApB,CAAtB,CAAd;;AAJ4C,WAM5C,gBAAgB,KAAhB,EAAuB,OAAO,KAAP,CAA3B;;AAEA,aAAK,QAAL,CAAc,EAAC,UAAU,IAAV,EAAgB,SAAS,IAAT,EAA/B,EARgD;MAAlB,QAWhC,SAA2B,UAAC,CAAD,EAAI,SAAJ,EAAkB;AAC3C,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAAO,KAAP,CAA1B;AACA,0BAAI,uBAAJ,EAA6B,UAAU,QAAV,CAA7B,CAF2C;;AAI3C,WAAI,UAAU,kCAAoB,SAApB,CAAV,CAJuC;;AAM3C,WAAI,WAAW;AACb,kBAAS,QAAQ,QAAR,CAAiB,IAAjB;AACT,kBAAS,QAAQ,QAAR,CAAiB,GAAjB;QAFP;;;AANuC,WAYvC,MAAK,KAAL,CAAW,MAAX,EAAmB;;aAEhB,WAAoB,SAApB,QAFgB;aAEP,WAAW,SAAX;;;;;AAFO;AAOrB,kBAAS,OAAT,IAAoB,MAAK,KAAL,CAAW,MAAX,CAPC;AAQrB,kBAAS,OAAT,IAAoB,MAAK,KAAL,CAAW,MAAX;;;AARC;;;;iCAWkB,0CAAuB,SAAS,OAAT,EAAkB,SAAS,OAAT,EAX3D;;;;AAWpB,kBAAS,OAAT,yBAXoB;AAWF,kBAAS,OAAT,yBAXE;AAcrB,kBAAS,MAAT,GAAkB,MAAK,KAAL,CAAW,MAAX,IAAqB,WAAU,SAAS,OAAT,CAA/B,CAdG;AAerB,kBAAS,MAAT,GAAkB,MAAK,KAAL,CAAW,MAAX,IAAqB,WAAU,SAAS,OAAT,CAA/B;;;AAfG,gBAkBrB,CAAQ,QAAR,CAAiB,IAAjB,GAAwB,QAAxB,CAlBqB;AAmBrB,iBAAQ,QAAR,CAAiB,GAAjB,GAAuB,QAAvB,CAnBqB;AAoBrB,iBAAQ,MAAR,GAAiB,SAAS,OAAT,GAAmB,MAAK,KAAL,CAAW,OAAX,CApBf;AAqBrB,iBAAQ,MAAR,GAAiB,SAAS,OAAT,GAAmB,MAAK,KAAL,CAAW,OAAX,CArBf;QAAvB;;;AAZ2C,WAqCvC,eAAe,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,OAArB,CAAf,CArCuC;AAsC3C,WAAI,iBAAiB,KAAjB,EAAwB,OAAO,KAAP,CAA5B;;AAEA,aAAK,QAAL,CAAc,QAAd,EAxC2C;MAAlB,QA2C3B,aAA+B,UAAC,CAAD,EAAI,SAAJ,EAAkB;AAC/C,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAAO,KAAP,CAA1B;;;AAD+C,WAI3C,aAAa,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,kCAAoB,SAApB,CAArB,CAAb,CAJ2C;AAK/C,WAAI,eAAe,KAAf,EAAsB,OAAO,KAAP,CAA1B;;AAEA,0BAAI,2BAAJ,EAAiC,UAAU,QAAV,CAAjC,CAP+C;;AAS/C,aAAK,QAAL,CAAc;AACZ,mBAAU,KAAV;AACA,iBAAQ,CAAR;AACA,iBAAQ,CAAR;QAHF,EAT+C;MAAlB;;;gBAvMZ;;yCAsIC;;AAElB,WAAG,mBAAS,WAAT,CAAqB,IAArB,aAAsC,UAAtC,EAAkD;AACnD,cAAK,QAAL,CAAc,EAAE,cAAc,IAAd,EAAhB,EADmD;QAArD;;;;4CAKqB;AACrB,YAAK,QAAL,CAAc,EAAC,UAAU,KAAV,EAAf;AADqB;;;8BA0EC;AACtB,WAAI,QAAQ,EAAR;WAAY,eAAe,IAAf;;;;;;AADM,WAOhB,gBAAgB;;AAEpB,YAAG,2BAAS,IAAT,IACD,KAAK,KAAL,CAAW,OAAX,GACA,KAAK,KAAL,CAAW,KAAX,CAAiB,CAAjB;;;AAGF,YAAG,2BAAS,IAAT,IACD,KAAK,KAAL,CAAW,OAAX,GACA,KAAK,KAAL,CAAW,KAAX,CAAiB,CAAjB;QATE;;;AAPgB,WAoBlB,KAAK,KAAL,CAAW,YAAX,EAAyB;AAC3B,wBAAe,gCAAmB,aAAnB,CAAf,CAD2B;QAA7B,MAEO;AACL,iBAAQ,gCAAmB,aAAnB,CAAR,CADK;QAFP;;;AApBsB,WA2BlB,KAAK,KAAL,CAAW,QAAX,IAAuB,CAAC,MAAM,KAAK,KAAL,CAAW,MAAX,CAAP,EAA2B;AACpD,eAAM,MAAN,GAAe,KAAK,KAAL,CAAW,MAAX,CADqC;QAAtD;;;AA3BsB,WAgClB,YAAY,0BAAY,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,SAA1B,IAAuC,EAAvC,EAA4C,iBAAxD,EAA2E;AACzF,qCAA4B,KAAK,KAAL,CAAW,QAAX;AAC5B,oCAA2B,KAAK,KAAL,CAAW,OAAX;QAFb,CAAZ;;;;AAhCkB,cAwCpB;;sBAAmB,KAAK,KAAL,IAAY,SAAS,KAAK,WAAL,EAAkB,QAAQ,KAAK,MAAL,EAAa,QAAQ,KAAK,UAAL,GAAvF;SACG,gBAAM,YAAN,CAAmB,gBAAM,QAAN,CAAe,IAAf,CAAoB,KAAK,KAAL,CAAW,QAAX,CAAvC,EAA6D;AAC5D,sBAAW,SAAX;AACA,+BAAW,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,KAA1B,EAAoC,MAA/C;AACA,sBAAW,YAAX;UAHD,CADH;QADF,CAvCsB;;;;UAvNL;GAAkB,gBAAM,SAAN;;AAAlB,WAEZ,cAAc;AAFF,WAIZ,yBAEF,wBAAc,SAAd;;;;;;;;;;;;;;;AAeH,SAAM,iBAAU,KAAV,CAAgB,CAAC,MAAD,EAAS,GAAT,EAAc,GAAd,EAAmB,MAAnB,CAAhB,CAAN;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,WAAQ,iBAAU,SAAV,CAAoB,CAC1B,iBAAU,KAAV,CAAgB;AACd,WAAM,iBAAU,MAAV;AACN,YAAO,iBAAU,MAAV;AACP,UAAK,iBAAU,MAAV;AACL,aAAQ,iBAAU,MAAV;IAJV,CAD0B,EAO1B,iBAAU,MAAV,EACA,iBAAU,KAAV,CAAgB,CAAC,KAAD,CAAhB,CAR0B,CAApB,CAAR;;;;;;;;;;;;;;;;;;;AA4BA,UAAO,iBAAU,KAAV,CAAgB;AACrB,QAAG,iBAAU,MAAV;AACH,QAAG,iBAAU,MAAV;IAFE,CAAP;;;;;;;;;;;;;;;;;;;AAsBA,WAAQ,iBAAU,MAAV;;;;;AAKR;AACA;AACA;;AA1GiB,WA6GZ,4BACF,wBAAc,YAAd;AACH,SAAM,MAAN;AACA,WAAQ,KAAR;AACA,UAAO,EAAC,GAAG,CAAH,EAAM,GAAG,CAAH,EAAd;AACA,WAAQ,GAAR;;mBAlHiB,U;;;;;;ACzBrB,gD;;;;;;ACAA,gD;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAgB;;AAEhB;AACA;;AAEA,kBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,EAAC;;;;;;;;;;;;;;;SCrBe;SAkBA;SAYA;SAYA;SAUA;SASA;SAQA;SASA;SAYA;SAKA;SAWA;SAKA;SAKA;SAUA;SAwBA;;AA/KhB;;AACA;;;;AACA;;;;;;;;AAsBA,KAAI,sBAAsB,EAAtB;AACG,UAAS,eAAT,CAAyB,EAAzB,EAA0C,QAA1C,EAAqE;AAC1E,OAAI,CAAC,mBAAD,EAAsB;AACxB,2BAAsB,wBAAY,CAChC,SADgC,EAEhC,uBAFgC,EAGhC,oBAHgC,EAIhC,mBAJgC,EAKhC,kBALgC,CAAZ,EAMnB,UAAS,MAAT,EAAgB;;AAEjB,cAAO,uBAAW,GAAG,MAAH,CAAX,CAAP,CAFiB;MAAhB,CANH,CADwB;IAA1B;;;AAD0E,UAenE,GAAG,mBAAH,EAAwB,IAAxB,CAA6B,EAA7B,EAAiC,QAAjC,CAAP,CAf0E;EAArE;;AAkBA,UAAS,QAAT,CAAkB,EAAlB,EAA6B,KAA7B,EAA4C,OAA5C,EAAqE;AAC1E,OAAI,CAAC,EAAD,EAAK;AAAE,YAAF;IAAT;AACA,OAAI,GAAG,WAAH,EAAgB;AAClB,QAAG,WAAH,CAAe,OAAO,KAAP,EAAc,OAA7B,EADkB;IAApB,MAEO,IAAI,GAAG,gBAAH,EAAqB;AAC9B,QAAG,gBAAH,CAAoB,KAApB,EAA2B,OAA3B,EAAoC,IAApC,EAD8B;IAAzB,MAEA;;AAEL,QAAG,OAAO,KAAP,CAAH,GAAmB,OAAnB,CAFK;IAFA;EAJF;;AAYA,UAAS,WAAT,CAAqB,EAArB,EAAgC,KAAhC,EAA+C,OAA/C,EAAwE;AAC7E,OAAI,CAAC,EAAD,EAAK;AAAE,YAAF;IAAT;AACA,OAAI,GAAG,WAAH,EAAgB;AAClB,QAAG,WAAH,CAAe,OAAO,KAAP,EAAc,OAA7B,EADkB;IAApB,MAEO,IAAI,GAAG,mBAAH,EAAwB;AACjC,QAAG,mBAAH,CAAuB,KAAvB,EAA8B,OAA9B,EAAuC,IAAvC,EADiC;IAA5B,MAEA;;AAEL,QAAG,OAAO,KAAP,CAAH,GAAmB,IAAnB,CAFK;IAFA;EAJF;;AAYA,UAAS,WAAT,CAAqB,IAArB,EAAgD;;;AAGrD,OAAI,SAAS,KAAK,YAAL,CAHwC;AAIrD,OAAI,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAJiD;AAKrD,aAAU,gBAAI,cAAc,cAAd,CAAd,CALqD;AAMrD,aAAU,gBAAI,cAAc,iBAAd,CAAd,CANqD;AAOrD,UAAO,MAAP,CAPqD;EAAhD;;AAUA,UAAS,UAAT,CAAoB,IAApB,EAA+C;;;AAGpD,OAAI,QAAQ,KAAK,WAAL,CAHwC;AAIpD,OAAI,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAJgD;AAKpD,YAAS,gBAAI,cAAc,eAAd,CAAb,CALoD;AAMpD,YAAS,gBAAI,cAAc,gBAAd,CAAb,CANoD;AAOpD,UAAO,KAAP,CAPoD;EAA/C;AASA,UAAS,WAAT,CAAqB,IAArB,EAAgD;AACrD,OAAI,SAAS,KAAK,YAAL,CADwC;AAErD,OAAI,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAFiD;AAGrD,aAAU,gBAAI,cAAc,UAAd,CAAd,CAHqD;AAIrD,aAAU,gBAAI,cAAc,aAAd,CAAd,CAJqD;AAKrD,UAAO,MAAP,CALqD;EAAhD;;AAQA,UAAS,UAAT,CAAoB,IAApB,EAA+C;AACpD,OAAI,QAAQ,KAAK,WAAL,CADwC;AAEpD,OAAI,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAFgD;AAGpD,YAAS,gBAAI,cAAc,WAAd,CAAb,CAHoD;AAIpD,YAAS,gBAAI,cAAc,YAAd,CAAb,CAJoD;AAKpD,UAAO,KAAP,CALoD;EAA/C;;;AASA,UAAS,oBAAT,CAA8B,CAA9B,EAA6C,IAA7C,EAAsH;AAC3H,OAAM,MAAM,EAAE,aAAF,GAAkB,EAAE,aAAF,CAAgB,CAAhB,CAAlB,GAAuC,CAAvC,CAD+G;;AAG3H,OAAM,eAAe,KAAK,YAAL,IAAqB,SAAS,IAAT,CAHiF;AAI3H,OAAM,mBAAmB,KAAK,YAAL,KAAsB,SAAS,IAAT,GAAgB,EAAC,MAAM,CAAN,EAAS,KAAK,CAAL,EAAhD,GAA0D,aAAa,qBAAb,EAA1D,CAJkG;;AAM3H,OAAM,IAAI,IAAI,OAAJ,GAAc,aAAa,UAAb,GAA0B,iBAAiB,IAAjB,CANyE;AAO3H,OAAM,IAAI,IAAI,OAAJ,GAAc,aAAa,SAAb,GAAyB,iBAAiB,GAAjB,CAP0E;;AAS3H,UAAO,EAAC,IAAD,EAAI,IAAJ,EAAP,CAT2H;EAAtH;;AAYA,UAAS,kBAAT,OAAoE;OAAvC,WAAuC;OAApC,WAAoC;;;AAEzE,8BAAS,mCAAmB,WAAnB,wBAAiD,eAAe,CAAf,GAAmB,KAAnB,GAA2B,CAA3B,GAA+B,KAA/B,CAA1D,CAFyE;EAApE;;AAKA,UAAS,kBAAT,QAAoE;OAAvC,YAAuC;OAApC,YAAoC;;AACzE,UAAO,eAAe,CAAf,GAAmB,GAAnB,GAAyB,CAAzB,GAA6B,GAA7B,CADkE;EAApE;;;;;AAOP,KAAM,mBAAmB,0BAAU,aAAV,CAAnB;AACN,KAAM,aAAa,qCAAqB,aAArB,EAAoC,gBAApC,CAAb;AACN,KAAM,wBAAsB,sBAAtB;;AAEC,UAAS,mBAAT,GAA+B;AACpC,OAAI,QAAQ,SAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,KAAuC,EAAvC,CADwB;AAEpC,YAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,EAAoC,QAAQ,eAAR,CAApC,CAFoC;EAA/B;;AAKA,UAAS,sBAAT,GAAkC;AACvC,OAAI,QAAQ,SAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,KAAuC,EAAvC,CAD2B;AAEvC,YAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,EAAoC,MAAM,OAAN,CAAc,eAAd,EAA+B,EAA/B,CAApC,EAFuC;EAAlC;;AAKA,UAAS,UAAT,GAAqD;OAAjC,mEAAqB,kBAAY;;;;AAG1D;AACE,kBAAa,MAAb;MACG,WAFL,CAH0D;EAArD;;;AAUA,UAAS,eAAT,CAAyB,SAAzB,EAAmD,OAAnD,EAAoE,OAApE,EAAgG;;AAErG,OAAI,QAAQ,UAAU,aAAV,IAA2B,UAAU,KAAV,CAF8D;AAGrG,OAAI,UAAU,CAAC,kBAAM,MAAM,KAAN,CAAP,CAHuF;;AAKrG,UAAO;AACL,WAAM,mBAAS,WAAT,CAAqB,SAArB,CAAN;AACA,eAAU;;AAER;AACE,eAAQ,CAAR,EAAW,QAAQ,CAAR;AACX,cAAO,OAAP,EAAgB,OAAO,OAAP;AAChB,gBAAS,OAAT,EAAkB,SAAS,OAAT;MALZ;;AAQR;AACE,eAAQ,UAAU,MAAM,KAAN,EAAa,QAAQ,UAAU,MAAM,KAAN;AACjD,cAAO,MAAM,KAAN,EAAa,OAAO,MAAM,KAAN;AAC3B,gBAAS,OAAT,EAAkB,SAAS,OAAT;MAXZ;IAFZ,CALqG;EAAhG;;;AAwBA,UAAS,aAAT,CAAuB,SAAvB,EAA6C,SAA7C,EAA4E;AACjF,UAAO;AACL,WAAM,mBAAS,WAAT,CAAqB,SAArB,CAAN;AACA,eAAU;AACR,aAAM,UAAU,KAAV,CAAgB,OAAhB,GAA0B,UAAU,QAAV,CAAmB,MAAnB;AAChC,YAAK,UAAU,KAAV,CAAgB,OAAhB,GAA0B,UAAU,QAAV,CAAmB,MAAnB;MAFjC;AAIA,aAAQ,UAAU,QAAV,CAAmB,MAAnB;AACR,aAAQ,UAAU,QAAV,CAAmB,MAAnB;IAPV,CADiF;;;;;;;;;;;;SC9KnE;SAMA;SAIA;SAIA;SAIA;;;AAlBT,UAAS,WAAT,CAAqB,KAArB,EAAwC,QAAxC,EAAiE;AACtE,QAAK,IAAI,IAAI,CAAJ,EAAO,SAAS,MAAM,MAAN,EAAc,IAAI,MAAJ,EAAY,GAAnD,EAAwD;AACtD,SAAI,SAAS,KAAT,CAAe,QAAf,EAAyB,CAAC,MAAM,CAAN,CAAD,EAAW,CAAX,EAAc,KAAd,CAAzB,CAAJ,EAAoD,OAAO,MAAM,CAAN,CAAP,CAApD;IADF;EADK;;AAMA,UAAS,UAAT,CAAoB,IAApB,EAAwC;AAC7C,UAAO,OAAO,IAAP,KAAgB,UAAhB,IAA8B,OAAO,SAAP,CAAiB,QAAjB,CAA0B,IAA1B,CAA+B,IAA/B,MAAyC,mBAAzC,CADQ;EAAxC;;AAIA,UAAS,KAAT,CAAe,GAAf,EAAkC;AACvC,UAAO,OAAO,GAAP,KAAe,QAAf,IAA2B,CAAC,MAAM,GAAN,CAAD,CADK;EAAlC;;AAIA,UAAS,GAAT,CAAa,CAAb,EAAgC;AACrC,UAAO,SAAS,CAAT,EAAY,EAAZ,CAAP,CADqC;EAAhC;;AAIA,UAAS,SAAT,CAAmB,KAAnB,EAAkC,QAAlC,EAAoD,aAApD,EAA2E;AAChF,OAAI,MAAM,QAAN,CAAJ,EAAqB;AACnB,YAAO,IAAI,KAAJ,mBAA0B,2BAAsB,0DAAhD,CAAP,CADmB;IAArB;;;;;;;;;;;;SCnBc;SAiBA;SAIA;;AAtBhB,KAAM,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAX;AACC,UAAS,SAAT,GAAqD;OAAlC,6DAAa,2BAAqB;;;;;AAI1D,OAAI,OAAO,MAAP,KAAkB,WAAlB,IAAiC,OAAO,OAAO,QAAP,KAAoB,WAA3B,EAAwC,OAAO,EAAP,CAA7E;;AAEA,OAAM,QAAQ,OAAO,QAAP,CAAgB,eAAhB,CAAgC,KAAhC,CAN4C;;AAQ1D,OAAI,QAAQ,KAAR,EAAe,OAAO,EAAP,CAAnB;;AAEA,QAAK,IAAI,IAAI,CAAJ,EAAO,IAAI,SAAS,MAAT,EAAiB,GAArC,EAA0C;AACxC,SAAI,mBAAmB,IAAnB,EAAyB,SAAS,CAAT,CAAzB,KAAyC,KAAzC,EAAgD,OAAO,SAAS,CAAT,CAAP,CAApD;IADF;;AAIA,UAAO,EAAP,CAd0D;EAArD;;AAiBA,UAAS,kBAAT,CAA4B,IAA5B,EAA0C,MAA1C,EAAkE;AACvE,UAAO,cAAY,SAAS,iBAAiB,IAAjB,CAArB,GAAgD,IAAhD,CADgE;EAAlE;;AAIA,UAAS,oBAAT,CAA8B,IAA9B,EAA4C,MAA5C,EAAoE;AACzE,UAAO,eAAa,OAAO,WAAP,WAAwB,IAArC,GAA8C,IAA9C,CADkE;EAApE;;AAIP,UAAS,gBAAT,CAA0B,GAA1B,EAA+C;AAC7C,OAAI,MAAM,EAAN,CADyC;AAE7C,OAAI,mBAAmB,IAAnB,CAFyC;AAG7C,QAAK,IAAI,IAAI,CAAJ,EAAO,IAAI,IAAI,MAAJ,EAAY,GAAhC,EAAqC;AACnC,SAAI,gBAAJ,EAAsB;AACpB,cAAO,IAAI,CAAJ,EAAO,WAAP,EAAP,CADoB;AAEpB,0BAAmB,KAAnB,CAFoB;MAAtB,MAGO,IAAI,IAAI,CAAJ,MAAW,GAAX,EAAgB;AACzB,0BAAmB,IAAnB,CADyB;MAApB,MAEA;AACL,cAAO,IAAI,CAAJ,CAAP,CADK;MAFA;IAJT;AAUA,UAAO,GAAP,CAb6C;EAA/C;;;;;mBAmBe,Y;;;;;;;;;;;SChCC;SAyCA;SAMA;SAIA;SAKA;;AArEhB;;AACA;;;;AACA;;;;AAWO,UAAS,gBAAT,CAA0B,SAA1B,EAAgD,OAAhD,EAAiE,OAAjE,EAAoG;;AAEzG,OAAI,CAAC,UAAU,KAAV,CAAgB,MAAhB,EAAwB,OAAO,CAAC,OAAD,EAAU,OAAV,CAAP,CAA7B;;;AAFyG,OAKpG,SAAU,UAAU,KAAV,CAAV,OALoG;;AAMzG,YAAS,OAAO,MAAP,KAAkB,QAAlB,GAA6B,MAA7B,GAAsC,YAAY,MAAZ,CAAtC,CANgG;AAOzG,OAAI,OAAO,mBAAS,WAAT,CAAqB,SAArB,CAAP,CAPqG;;AASzG,OAAI,OAAO,MAAP,KAAkB,QAAlB,EAA4B;AAC9B,SAAI,kBAAJ,CAD8B;AAE9B,SAAI,WAAW,QAAX,EAAqB;AACvB,mBAAY,KAAK,UAAL,CADW;MAAzB,MAEO;AACL,mBAAY,SAAS,aAAT,CAAuB,MAAvB,CAAZ,CADK;AAEL,WAAI,CAAC,SAAD,EAAY,MAAM,IAAI,KAAJ,CAAU,sBAAsB,MAAtB,GAA+B,8BAA/B,CAAhB,CAAhB;MAJF;AAMA,SAAI,YAAY,OAAO,gBAAP,CAAwB,IAAxB,CAAZ,CAR0B;AAS9B,SAAI,iBAAiB,OAAO,gBAAP,CAAwB,SAAxB,CAAjB;;AAT0B,WAW9B,GAAS;AACP,aAAM,CAAC,KAAK,UAAL,GAAkB,gBAAI,eAAe,WAAf,CAAvB,GACA,gBAAI,UAAU,eAAV,CADJ,GACiC,gBAAI,UAAU,UAAV,CADrC;AAEN,YAAK,CAAC,KAAK,SAAL,GAAiB,gBAAI,eAAe,UAAf,CAAtB,GACC,gBAAI,UAAU,cAAV,CADL,GACiC,gBAAI,UAAU,SAAV,CADrC;AAEL,cAAO,wBAAW,SAAX,IAAwB,wBAAW,IAAX,CAAxB,GAA2C,KAAK,UAAL;AAClD,eAAQ,yBAAY,SAAZ,IAAyB,yBAAY,IAAZ,CAAzB,GAA6C,KAAK,SAAL;MANvD,CAX8B;IAAhC;;;AATyG,OA+BrG,kBAAM,OAAO,KAAP,CAAV,EAAyB,UAAU,KAAK,GAAL,CAAS,OAAT,EAAkB,OAAO,KAAP,CAA5B,CAAzB;AACA,OAAI,kBAAM,OAAO,MAAP,CAAV,EAA0B,UAAU,KAAK,GAAL,CAAS,OAAT,EAAkB,OAAO,MAAP,CAA5B,CAA1B;;;AAhCyG,OAmCrG,kBAAM,OAAO,IAAP,CAAV,EAAwB,UAAU,KAAK,GAAL,CAAS,OAAT,EAAkB,OAAO,IAAP,CAA5B,CAAxB;AACA,OAAI,kBAAM,OAAO,GAAP,CAAV,EAAuB,UAAU,KAAK,GAAL,CAAS,OAAT,EAAkB,OAAO,GAAP,CAA5B,CAAvB;;AAEA,UAAO,CAAC,OAAD,EAAU,OAAV,CAAP,CAtCyG;EAApG;;AAyCA,UAAS,UAAT,CAAoB,IAApB,EAA4C,QAA5C,EAA8D,QAA9D,EAAkG;AACvG,OAAI,IAAI,KAAK,KAAL,CAAW,WAAW,KAAK,CAAL,CAAX,CAAX,GAAiC,KAAK,CAAL,CAAjC,CAD+F;AAEvG,OAAI,IAAI,KAAK,KAAL,CAAW,WAAW,KAAK,CAAL,CAAX,CAAX,GAAiC,KAAK,CAAL,CAAjC,CAF+F;AAGvG,UAAO,CAAC,CAAD,EAAI,CAAJ,CAAP,CAHuG;EAAlG;;AAMA,UAAS,QAAT,CAAkB,SAAlB,EAAiD;AACtD,UAAO,UAAU,KAAV,CAAgB,IAAhB,KAAyB,MAAzB,IAAmC,UAAU,KAAV,CAAgB,IAAhB,KAAyB,GAAzB,CADY;EAAjD;;AAIA,UAAS,QAAT,CAAkB,SAAlB,EAAiD;AACtD,UAAO,UAAU,KAAV,CAAgB,IAAhB,KAAyB,MAAzB,IAAmC,UAAU,KAAV,CAAgB,IAAhB,KAAyB,GAAzB,CADY;EAAjD;;;AAKA,UAAS,kBAAT,CAA4B,CAA5B,EAA2C,aAA3C,EAA0F;AAC/F,OAAM,OAAO,mBAAS,WAAT,CAAqB,aAArB,CAAP,CADyF;AAE/F,UAAO,kCAAqB,CAArB,EAAwB,IAAxB,CAAP,CAF+F;EAA1F;;;AAMP,UAAS,WAAT,CAAqB,MAArB,EAA6C;AAC3C,UAAO;AACL,WAAM,OAAO,IAAP;AACN,UAAK,OAAO,GAAP;AACL,YAAO,OAAO,KAAP;AACP,aAAQ,OAAO,MAAP;IAJV,CAD2C;;;;;;;;;;;;;;;;;AC3E7C;;;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;AAGA,KAAM,YAAY;AAChB,UAAO;AACL,YAAO,YAAP;AACA,WAAM,WAAN;AACA,WAAM,UAAN;IAHF;AAKA,UAAO;AACL,YAAO,WAAP;AACA,WAAM,WAAN;AACA,WAAM,SAAN;IAHF;EANI;;;AAcN,KAAI,eAAe,UAAU,KAAV;;;;;;;;;KAgBE;;;;;;;;;;;;;;4MAiMnB,QAAmB;AACjB,iBAAU,KAAV;;AAEA,cAAO,IAAP,EAAa,OAAO,IAAP;cAaf,kBAAgC,UAAC,CAAD,EAAO;;AAErC,aAAK,KAAL,CAAW,WAAX,CAAuB,CAAvB;;;AAFqC,WAKjC,CAAC,MAAK,KAAL,CAAW,aAAX,IAA4B,OAAO,EAAE,MAAF,KAAa,QAApB,IAAgC,EAAE,MAAF,KAAa,CAAb,EAAgB,OAAO,KAAP,CAAjF;;;AALqC,WAQjC,MAAK,KAAL,CAAW,QAAX,IACD,MAAK,KAAL,CAAW,MAAX,IAAqB,CAAC,6BAAgB,EAAE,MAAF,EAAU,MAAK,KAAL,CAAW,MAAX,CAA3B,IACrB,MAAK,KAAL,CAAW,MAAX,IAAqB,6BAAgB,EAAE,MAAF,EAAU,MAAK,KAAL,CAAW,MAAX,CAA/C,EAAoE;AACrE,gBADqE;QAFvE;;;;;AARqC,WAiBjC,EAAE,aAAF,EAAgB;AAClB,eAAK,QAAL,CAAc,EAAC,iBAAiB,EAAE,aAAF,CAAgB,CAAhB,EAAmB,UAAnB,EAAhC,EADkB;QAApB;;;;AAjBqC,WAuBjC,MAAK,KAAL,CAAW,oBAAX,EAAiC,mCAArC;;;AAvBqC;iCA0BxB,qCAAmB,CAAnB,SA1BwB;;WA0BhC,0BA1BgC;WA0B7B;;;AA1B6B;AA6BrC,WAAI,YAAY,oCAAsB,CAAtB,EAAyB,CAAzB,CAAZ,CA7BiC;;AA+BrC,0BAAI,oCAAJ,EAA0C,UAAU,QAAV,CAA1C;;;AA/BqC,yBAkCrC,CAAI,SAAJ,EAAe,MAAK,KAAL,CAAW,OAAX,CAAf,CAlCqC;AAmCrC,WAAI,eAAe,MAAK,KAAL,CAAW,OAAX,CAAmB,CAAnB,EAAsB,SAAtB,CAAf,CAnCiC;AAoCrC,WAAI,iBAAiB,KAAjB,EAAwB,OAA5B;;;;;AApCqC,YA0CrC,CAAK,QAAL,CAAc;AACZ,mBAAU,IAAV;;AAEA,gBAAO,CAAP;AACA,gBAAO,CAAP;QAJF;;;;;AA1CqC,4BAoDrC,CAAS,QAAT,EAAmB,aAAa,IAAb,EAAmB,MAAK,UAAL,CAAtC,CApDqC;AAqDrC,6BAAS,QAAT,EAAmB,aAAa,IAAb,EAAmB,MAAK,cAAL,CAAtC,CArDqC;MAAP,QAwDhC,aAA2B,UAAC,CAAD,EAAO;;AAEhC,WAAI,EAAE,aAAF,IAAoB,EAAE,aAAF,CAAgB,CAAhB,EAAmB,UAAnB,KAAkC,MAAK,KAAL,CAAW,eAAX,EAA6B,OAAvF;;kCAEa,qCAAmB,CAAnB,SAJmB;;WAI3B,2BAJ2B;WAIxB;;;AAJwB;AAOhC,WAAI,MAAM,OAAN,CAAc,MAAK,KAAL,CAAW,IAAX,CAAlB,EAAoC;AAClC,aAAI,SAAS,IAAI,MAAK,KAAL,CAAW,KAAX;aAAkB,SAAS,IAAI,MAAK,KAAL,CAAW,KAAX,CADd;;2BAEf,6BAAW,MAAK,KAAL,CAAW,IAAX,EAAiB,MAA5B,EAAoC,MAApC,EAFe;;;;AAEjC,kCAFiC;AAEzB,kCAFyB;;AAGlC,aAAI,CAAC,MAAD,IAAW,CAAC,MAAD,EAAS,OAAxB;AAHkC,UAIlC,GAAI,MAAK,KAAL,CAAW,KAAX,GAAmB,MAAnB,EAA2B,IAAI,MAAK,KAAL,CAAW,KAAX,GAAmB,MAAnB,CAJD;QAApC;;AAOA,WAAM,YAAY,oCAAsB,CAAtB,EAAyB,CAAzB,CAAZ,CAd0B;;AAgBhC,0BAAI,+BAAJ,EAAqC,UAAU,QAAV,CAArC;;;AAhBgC,WAmB1B,eAAe,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,SAArB,CAAf,CAnB0B;AAoBhC,WAAI,iBAAiB,KAAjB,EAAwB;AAC1B,eAAK,cAAL,CAAoB,EAApB,EAD0B;AAE1B,gBAF0B;QAA5B;;AAKA,aAAK,QAAL,CAAc;AACZ,gBAAO,CAAP;AACA,gBAAO,CAAP;QAFF,EAzBgC;MAAP,QA+B3B,iBAA+B,UAAC,CAAD,EAAO;AACpC,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAA1B;;;;AADoC,WAKhC,EAAE,cAAF,IAAqB,EAAE,cAAF,CAAiB,CAAjB,EAAoB,UAApB,KAAmC,MAAK,KAAL,CAAW,eAAX,EAA6B,OAAzF;;;AALoC,WAQhC,MAAK,KAAL,CAAW,oBAAX,EAAiC,sCAArC;;kCAEa,qCAAmB,CAAnB,SAVuB;;WAU/B,2BAV+B;WAU5B,2BAV4B;;AAWpC,WAAM,YAAY,oCAAsB,CAAtB,EAAyB,CAAzB,CAAZ,CAX8B;;AAapC,0BAAI,mCAAJ,EAAyC,UAAU,QAAV,CAAzC;;;AAboC,YAgBpC,CAAK,QAAL,CAAc;AACZ,mBAAU,KAAV;AACA,gBAAO,IAAP;AACA,gBAAO,IAAP;QAHF;;;AAhBoC,YAuBpC,CAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,SAArB;;;AAvBoC,yBA0BpC,CAAI,kCAAJ,EA1BoC;AA2BpC,gCAAY,QAAZ,EAAsB,aAAa,IAAb,EAAmB,MAAK,UAAL,CAAzC,CA3BoC;AA4BpC,gCAAY,QAAZ,EAAsB,aAAa,IAAb,EAAmB,MAAK,cAAL,CAAzC,CA5BoC;MAAP,QA+B/B,cAA4B,UAAC,CAAD,EAAO;AACjC,sBAAe,UAAU,KAAV;;AADkB,cAG1B,MAAK,eAAL,CAAqB,CAArB,CAAP,CAHiC;MAAP,QAM5B,YAA0B,UAAC,CAAD,EAAO;AAC/B,sBAAe,UAAU,KAAV,CADgB;;AAG/B,cAAO,MAAK,cAAL,CAAoB,CAApB,CAAP,CAH+B;MAAP,QAO1B,eAA6B,UAAC,CAAD,EAAO;;AAElC,sBAAe,UAAU,KAAV,CAFmB;;AAIlC,cAAO,MAAK,eAAL,CAAqB,CAArB,CAAP,CAJkC;MAAP,QAO7B,aAA2B,UAAC,CAAD,EAAO;;AAEhC,sBAAe,UAAU,KAAV,CAFiB;;AAIhC,cAAO,MAAK,cAAL,CAAoB,CAApB,CAAP,CAJgC;MAAP;;;gBA3VR;;4CAuMI;;;AAGrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,UAAL,CAA5C,CAHqB;AAIrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,UAAL,CAA5C,CAJqB;AAKrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,cAAL,CAA5C,CALqB;AAMrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,cAAL,CAA5C,CANqB;AAOrB,WAAI,KAAK,KAAL,CAAW,oBAAX,EAAiC,sCAArC;;;;;;;8BAoJsB;;;AAGtB,cAAO,gBAAM,YAAN,CAAmB,gBAAM,QAAN,CAAe,IAAf,CAAoB,KAAK,KAAL,CAAW,QAAX,CAAvC,EAA6D;AAClE,gBAAO,wBAAW,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,KAA1B,CAAlB;;;;AAIA,sBAAa,KAAK,WAAL;AACb,uBAAc,KAAK,YAAL;AACd,oBAAW,KAAK,SAAL;AACX,qBAAY,KAAK,UAAL;QARP,CAAP,CAHsB;;;;UAlWL;GAAsB,gBAAM,SAAN;;AAAtB,eAEZ,cAAc;AAFF,eAIZ,YAAY;;;;;;;AAOjB,kBAAe,iBAAU,IAAV;;;;;;;;;;;;;;;;;;;;AAoBf,aAAU,iBAAU,IAAV;;;;;;;AAOV,yBAAsB,iBAAU,IAAV;;;;;;;;;;;;;;;;;;;AAmBtB,SAAM,iBAAU,OAAV,CAAkB,iBAAU,MAAV,CAAxB;;;;;;;;;;;;;;;;;;;;;;AAsBA,WAAQ,iBAAU,MAAV;;;;;;;;;;;;;;;;;;;;;;AAsBR,WAAQ,iBAAU,MAAV;;;;;;;;;;;;;;;;;;;;;AAqBR,YAAS,iBAAU,IAAV;;;;;;;;;;;;;;;;;;;;;AAqBT,WAAQ,iBAAU,IAAV;;;;;;;;;;;;;;;;;;;;AAoBR,WAAQ,iBAAU,IAAV;;;;;;AAMR,gBAAa,iBAAU,IAAV;;;;;AAKb,8BA1KiB;AA2KjB,0BA3KiB;AA4KjB,8BA5KiB;;AAJA,eAmLZ,eAAe;AACpB,kBAAe,KAAf;AACA,WAAQ,IAAR;AACA,aAAU,KAAV;AACA,yBAAsB,IAAtB;AACA,WAAQ,IAAR;AACA,SAAM,IAAN;AACA,cAAW,IAAX;AACA,YAAS,mBAAU,EAAV;AACT,WAAQ,kBAAU,EAAV;AACR,WAAQ,kBAAU,EAAV;AACR,gBAAa,uBAAU,EAAV;;mBA9LI,c;;;;;;;;;;;mBCtCG;AAAT,UAAS,GAAT,GAA2B;;;AACxC,OAAI,aAA6B,qBAAQ,GAAR,4BAAjC","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 764021ff5f433cecdf2e\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport {default as React, PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createUIEvent, createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\n\nimport type {CoreEvent} from './utils/domFns';\nexport type CoreEventHandler = (e: Event, coreEvent: CoreEvent) => void | false;\nexport type DraggableState = {\n dragging: boolean,\n dragged: boolean,\n clientX: number, clientY: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.Number,\n right: PropTypes.Number,\n top: PropTypes.Number,\n bottom: PropTypes.Number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: PropTypes.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n start: {x: 0, y: 0},\n zIndex: NaN\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n clientX: this.props.start.x, clientY: this.props.start.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: CoreEventHandler = (e, coreEvent) => {\n log('Draggable: onDragStart: %j', coreEvent.position);\n\n // Short-circuit if user's callback killed it.\n let shouldStart = this.props.onStart(e, createUIEvent(this, coreEvent));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: CoreEventHandler = (e, coreEvent) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreEvent.position);\n\n let uiEvent = createUIEvent(this, coreEvent);\n\n let newState = {\n clientX: uiEvent.position.left,\n clientY: uiEvent.position.top\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n let {clientX, clientY} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.clientX += this.state.slackX;\n newState.clientY += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n [newState.clientX, newState.clientY] = getBoundPosition(this, newState.clientX, newState.clientY);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (clientX - newState.clientX);\n newState.slackY = this.state.slackY + (clientY - newState.clientY);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiEvent.position.left = clientX;\n uiEvent.position.top = clientY;\n uiEvent.deltaX = newState.clientX - this.state.clientX;\n uiEvent.deltaY = newState.clientY - this.state.clientY;\n }\n\n // Short-circuit if user's callback killed it.\n let shouldUpdate = this.props.onDrag(e, uiEvent);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: CoreEventHandler = (e, coreEvent) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n let shouldStop = this.props.onStop(e, createUIEvent(this, coreEvent));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreEvent.position);\n\n this.setState({\n dragging: false,\n slackX: 0,\n slackY: 0\n });\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n this.props.start.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n this.props.start.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n style = createCSSTransform(transformOpts);\n }\n\n // zIndex option\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n // Mark with class while dragging\n let className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, isNum, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\nimport ReactDOM from 'react-dom';\n\nimport type Draggable from '../Draggable';\nimport type DraggableCore from '../DraggableCore';\n\nexport type CoreEvent = {\n node: HTMLElement,\n position: {\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n clientX: number, clientY: number\n }\n};\n\nexport type UIEvent = {\n node: HTMLElement,\n position: {\n left: number, top: number\n },\n deltaX: number, deltaY: number\n};\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: HTMLElement, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n let computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n let computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n let computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n let computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): {x: number, y: number} {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n let style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n let style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n// Create an event exposed by \nexport function createCoreEvent(draggable: DraggableCore, clientX: number, clientY: number): CoreEvent {\n // State changes are often (but not always!) async. We want the latest value.\n let state = draggable._pendingState || draggable.state;\n let isStart = !isNum(state.lastX);\n\n return {\n node: ReactDOM.findDOMNode(draggable),\n position: isStart ?\n // If this is our first move, use the clientX and clientY as last coords.\n {\n deltaX: 0, deltaY: 0,\n lastX: clientX, lastY: clientY,\n clientX: clientX, clientY: clientY\n } :\n // Otherwise calculate proper values.\n {\n deltaX: clientX - state.lastX, deltaY: clientY - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n clientX: clientX, clientY: clientY\n }\n };\n}\n\n// Create an event exposed by \nexport function createUIEvent(draggable: Draggable, coreEvent: CoreEvent): UIEvent {\n return {\n node: ReactDOM.findDOMNode(draggable),\n position: {\n left: draggable.state.clientX + coreEvent.position.deltaX,\n top: draggable.state.clientY + coreEvent.position.deltaY\n },\n deltaX: coreEvent.position.deltaX,\n deltaY: coreEvent.position.deltaY\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type DraggableCore from '../DraggableCore';\nexport type ControlPosition = {\n x: number, y: number\n};\nexport type Bounds = {\n left: number, top: number, right: number, bottom: number\n};\n\nexport function getBoundPosition(draggable: Draggable, clientX: number, clientY: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [clientX, clientY];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n let node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n let nodeStyle = window.getComputedStyle(node);\n let boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n let x = Math.round(pendingX / grid[0]) * grid[0];\n let y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n const node = ReactDOM.findDOMNode(draggableCore);\n return offsetXYFromParentOf(e, node);\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport {default as React, PropTypes} from 'react';\nimport {matchesSelector, createCoreEvent, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype EventHandler = (e: Event) => void;\ntype CoreState = {\n dragging: boolean,\n lastX: ?number,\n lastY: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I can't be dragged
\n *
\n * );\n * }\n * });\n * ```\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: null, lastY: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n let {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n let coreEvent = createCoreEvent(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent.position);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n let shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreEvent(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent.position);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop({});\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n let {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreEvent(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent.position);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: null,\n lastY: null\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index ae8c48c1..dc3e1943 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,clientX:_this.props.start.x,clientY:_this.props.start.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreEvent){(0,_log2["default"])("Draggable: onDragStart: %j",coreEvent.position);var shouldStart=_this.props.onStart(e,(0,_domFns.createUIEvent)(_this,coreEvent));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreEvent){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreEvent.position);var uiEvent=(0,_domFns.createUIEvent)(_this,coreEvent),newState={clientX:uiEvent.position.left,clientY:uiEvent.position.top};if(_this.props.bounds){var _clientX=newState.clientX,_clientY=newState.clientY;newState.clientX+=_this.state.slackX,newState.clientY+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.clientX,newState.clientY),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.clientX=_getBoundPosition2[0],newState.clientY=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_clientX-newState.clientX),newState.slackY=_this.state.slackY+(_clientY-newState.clientY),uiEvent.position.left=_clientX,uiEvent.position.top=_clientY,uiEvent.deltaX=newState.clientX-_this.state.clientX,uiEvent.deltaY=newState.clientY-_this.state.clientY}var shouldUpdate=_this.props.onDrag(e,uiEvent);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreEvent){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_domFns.createUIEvent)(_this,coreEvent));return shouldStop===!1?!1:((0,_log2["default"])("Draggable: onDragStop: %j",coreEvent.position),void _this.setState({dragging:!1,slackX:0,slackY:0}))},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentDidMount",value:function(){_reactDom2["default"].findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,transformOpts={x:(0,_positionFns.canDragX)(this)?this.state.clientX:this.props.start.x,y:(0,_positionFns.canDragY)(this)?this.state.clientY:this.props.start.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts),this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.Number,right:_react.PropTypes.Number,top:_react.PropTypes.Number,bottom:_react.PropTypes.Number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),start:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),zIndex:_react.PropTypes.number,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,start:{x:0,y:0},zIndex:NaN}),exports["default"]=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){if(props[propName])throw new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child.")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:null,lastY:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier}),_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)();var _getControlPosition=(0,_positionFns.getControlPosition)(e),clientX=_getControlPosition.clientX,clientY=_getControlPosition.clientY,coreEvent=(0,_domFns.createCoreEvent)(_this,clientX,clientY);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent.position),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.setState({dragging:!0,lastX:clientX,lastY:clientY,scrollX:document.body.scrollLeft,scrollY:document.body.scrollTop}),(0,_domFns.addEvent)(document,"scroll",_this.handleScroll),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e),clientX=_getControlPosition2.clientX,clientY=_getControlPosition2.clientY;if(Array.isArray(_this.props.grid)){var deltaX=clientX-_this.state.lastX,deltaY=clientY-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;clientX=_this.state.lastX+deltaX,clientY=_this.state.lastY+deltaY}var coreEvent=(0,_domFns.createCoreEvent)(_this,clientX,clientY);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent.position);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop({}):void _this.setState({lastX:clientX,lastY:clientY})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e),clientX=_getControlPosition3.clientX,clientY=_getControlPosition3.clientY,coreEvent=(0,_domFns.createCoreEvent)(_this,clientX,clientY);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent.position),_this.setState({dragging:!1,lastX:null,lastY:null}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,"scroll",_this.handleScroll),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.handleScroll=function(e){var s=_this.state,x=document.body.scrollLeft,y=document.body.scrollTop,coreEvent=(0,_domFns.createCoreEvent)(_this);coreEvent.position.deltaX=x-s.scrollX,coreEvent.position.deltaY=y-s.scrollY,_this.setState({lastX:s.lastX+coreEvent.position.deltaX,lastY:s.lastY+coreEvent.position.deltaY,scrollX:x,scrollY:y}),_this.props.onDrag(e,coreEvent)},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,"scroll",this.handleScroll),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,clientX:_this.props.start.x,clientY:_this.props.start.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreEvent){(0,_log2["default"])("Draggable: onDragStart: %j",coreEvent.position);var shouldStart=_this.props.onStart(e,(0,_domFns.createUIEvent)(_this,coreEvent));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreEvent){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreEvent.position);var uiEvent=(0,_domFns.createUIEvent)(_this,coreEvent),newState={clientX:uiEvent.position.left,clientY:uiEvent.position.top};if(_this.props.bounds){var _clientX=newState.clientX,_clientY=newState.clientY;newState.clientX+=_this.state.slackX,newState.clientY+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.clientX,newState.clientY),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.clientX=_getBoundPosition2[0],newState.clientY=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_clientX-newState.clientX),newState.slackY=_this.state.slackY+(_clientY-newState.clientY),uiEvent.position.left=_clientX,uiEvent.position.top=_clientY,uiEvent.deltaX=newState.clientX-_this.state.clientX,uiEvent.deltaY=newState.clientY-_this.state.clientY}var shouldUpdate=_this.props.onDrag(e,uiEvent);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreEvent){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_domFns.createUIEvent)(_this,coreEvent));return shouldStop===!1?!1:((0,_log2["default"])("Draggable: onDragStop: %j",coreEvent.position),void _this.setState({dragging:!1,slackX:0,slackY:0}))},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentDidMount",value:function(){_reactDom2["default"].findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,transformOpts={x:(0,_positionFns.canDragX)(this)?this.state.clientX:this.props.start.x,y:(0,_positionFns.canDragY)(this)?this.state.clientY:this.props.start.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts),this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.Number,right:_react.PropTypes.Number,top:_react.PropTypes.Number,bottom:_react.PropTypes.Number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),start:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),zIndex:_react.PropTypes.number,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,start:{x:0,y:0},zIndex:NaN}),exports["default"]=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:null,lastY:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier}),_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)();var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_domFns.createCoreEvent)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent.position),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_domFns.createCoreEvent)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent.position);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop({}):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_domFns.createCoreEvent)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent.position),_this.setState({dragging:!1,lastX:null,lastY:null}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index bae84401..06b53a98 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b0462296c00c45ab0142","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","clientX","_this","props","start","x","clientY","y","slackX","slackY","isElementSVG","onDragStart","e","coreEvent","_log2","position","shouldStart","onStart","createUIEvent","setState","onDrag","uiEvent","newState","left","top","bounds","_clientX","_clientY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","_temp","_possibleConstructorReturn","_ret","_reactDom2","findDOMNode","SVGElement","style","svgTransform","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","isNaN","zIndex","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","Number","right","bottom","string","number","dontSetMe","defaultProps","NaN","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","document","body","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","createCoreEvent","draggable","_pendingState","isStart","isNum","lastX","lastY","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","num","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","targetTouches","eventsFor","touch","move","stop","mouse","dragEventFor","handleDragStart","onMouseDown","allowAnyClick","button","disabled","handle","target","cancel","touchIdentifier","identifier","enableUserSelectHack","_getControlPosition","scrollX","scrollLeft","scrollY","scrollTop","handleScroll","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","changedTouches","_getControlPosition3","s","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 764021ff5f433cecdf2e","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","clientX","_this","props","start","x","clientY","y","slackX","slackY","isElementSVG","onDragStart","e","coreEvent","_log2","position","shouldStart","onStart","createUIEvent","setState","onDrag","uiEvent","newState","left","top","bounds","_clientX","_clientY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","_temp","_possibleConstructorReturn","_ret","_reactDom2","findDOMNode","SVGElement","style","svgTransform","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","isNaN","zIndex","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","Number","right","bottom","string","number","dontSetMe","defaultProps","NaN","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","scrollLeft","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","createCoreEvent","draggable","_pendingState","isStart","isNum","lastX","lastY","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","num","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","eventsFor","touch","move","stop","mouse","dragEventFor","handleDragStart","onMouseDown","allowAnyClick","button","disabled","handle","target","cancel","touchIdentifier","identifier","enableUserSelectHack","_getControlPosition","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index c64935c0..e149789d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "1.3.7", + "version": "1.4.0-beta1", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -63,4 +63,4 @@ "dependencies": { "classnames": "^2.2.0" } -} \ No newline at end of file +} From 1385c6ca71c413376dbd17dea30f097880e7e208 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 14 Apr 2016 17:19:01 -0500 Subject: [PATCH 165/412] Use position/defaultPosition for controlled/uncontrolled behavior. Misc. cleanup. See #140 for context. --- .eslintrc | 4 +- .flowconfig | 4 +- CHANGELOG.md | 38 +++++++++- README.md | 132 +++++++++++++++++++---------------- example/index.html | 83 +++++++++++++++------- lib/Draggable.es6 | 142 +++++++++++++++++++++----------------- lib/DraggableCore.es6 | 134 +++++++++-------------------------- lib/utils/domFns.es6 | 76 +++----------------- lib/utils/log.es6 | 1 + lib/utils/positionFns.es6 | 72 +++++++++++++------ lib/utils/types.es6 | 16 +++++ specs/draggable.spec.jsx | 10 +-- 12 files changed, 370 insertions(+), 342 deletions(-) create mode 100644 lib/utils/types.es6 diff --git a/.eslintrc b/.eslintrc index 1a5d3996..bf36c31b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -8,11 +8,13 @@ "quotes": [1, "single"], "curly": [1, "multi-line"], "camelcase": 0, - "comma-dangle": 1, + "comma-dangle": 0, + "no-console": 2, "no-use-before-define": [1, "nofunc"], "no-underscore-dangle": 0, "no-unused-vars": 1, "new-cap": 0, + "prefer-const": 1, "semi": 1 }, env: { diff --git a/.flowconfig b/.flowconfig index 696c78ae..86090005 100644 --- a/.flowconfig +++ b/.flowconfig @@ -13,8 +13,8 @@ suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowBug.* suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowIgnore.* suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowNewLine.* suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowIssue -esproposal.class_instance_fields=ignore -esproposal.class_static_fields=ignore +esproposal.class_instance_fields=enable +esproposal.class_static_fields=enable module.file_ext=.js module.file_ext=.jsx module.file_ext=.es5 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eceffc5..f08ea499 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,41 @@ # Changelog +### 2.0.0-beta1 (Apr 14, 2016) + +- Due to API changes, this is a major release. + +#### Breaking Changes: + +- Both `` and `` have had their callback types changed and unified. + +```js +type DraggableEventHandler = (e: Event, data: DraggableData) => void | false; +type DraggableData = { + node: HTMLElement, + // lastX + deltaX === x + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number +}; +``` + +- The `start` option has been renamed to `defaultPosition`. +- The `zIndex` option has been removed. + +#### Possibly Breaking Changes: + +- When determining deltas, we now use a new method that checks the delta against the Draggable's `offsetParent`. + This method allows us to support arbitrary nested scrollable ancestors without scroll handlers! + - This may cause issues in certain layouts. If you find one, please open an issue. + +#### Enhancements: + +- `` now has a `position` attribute. Its relationship to `defaultPosition` is much like + `value` to `defaultValue` on React `` nodes. If set, the position is fixed and cannot be mutated. + If empty, the component will manage its own state. See [#140](https://github.com/mzabriskie/react-draggable/pull/140) + for more info & motivations. +- Misc. bugfixes. + ### 1.4.0-beta1 (Apr 13, 2016) - Major improvements to drag tracking that now support even nested scroll boxes. @@ -11,7 +47,7 @@ ### 1.3.6 (Apr 8, 2016) -- Republish after 1.3.5 contained a bundling error. +- Republished after 1.3.5 contained a bundling error. ### 1.3.5 (Apr 8, 2016) diff --git a/README.md b/README.md index ca9f157a..405b1d15 100644 --- a/README.md +++ b/README.md @@ -67,46 +67,15 @@ React.DOM elements support the above six properties by default, so you may use t Props: ```js +type DraggableEventHandler = (e: Event, data: DraggableData) => void | false; +type DraggableData = { + node: HTMLElement, + // lastX + deltaX === x + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number +}; { -// Called when dragging starts. If `false` is returned from this method, -// dragging will cancel. -// These callbacks are called with the arity: -// (event: Event, -// { -// position: {left: number, top: number}, -// deltaX: number, -// deltaY: number -// } -// ) -onStart: Function, - -// Called while dragging. -onDrag: Function, - -// Called when dragging stops. -onStop: Function, - -// Called whenever the user mouses down. Called regardless of handle or -// disabled status. -onMouseDown: Function, - -// Specifies the `x` and `y` that the dragged item should start at. -// This is generally not necessary to use (you can use absolute or relative -// positioning of the child directly), but can be helpful for uniformity in -// your callbacks and with css transforms. -start: {x: number, y: number}, - -// If true, will not call any drag handlers. -disabled: boolean, - -// Specifies a selector to be used to prevent drag initialization. -// Example: '.body' -cancel: string, - -// Specifies a selector to be used as the handle that initiates drag. -// Example: '.handle' -handle: string, - // If set to `true`, will allow dragging on non left-button clicks. allowAnyClick: boolean, @@ -127,11 +96,44 @@ axis: string, // can be moved. bounds: {left: number, top: number, right: number, bottom: number} | string, +// Specifies a selector to be used to prevent drag initialization. +// Example: '.body' +cancel: string, + +// Specifies the `x` and `y` that the dragged item should start at. +// This is generally not necessary to use (you can use absolute or relative +// positioning of the child directly), but can be helpful for uniformity in +// your callbacks and with css transforms. +defaultPosition: {x: number, y: number}, + +// If true, will not call any drag handlers. +disabled: boolean, + // Specifies the x and y that dragging should snap to. grid: [number, number], -// Specifies the zIndex to use while dragging. -zIndex: number +// Specifies a selector to be used as the handle that initiates drag. +// Example: '.handle' +handle: string, + +// Called whenever the user mouses down. Called regardless of handle or +// disabled status. +onMouseDown: (e: MouseEvent) => boolean, + +// Called when dragging starts. If `false` is returned any handler, +// the action will cancel. +onStart: DraggableEventHandler, + +// Called while dragging. +onDrag: DraggableEventHandler, + +// Called when dragging stops. +onStop: DraggableEventHandler, + +// Much like React form elements, if this property is present, the item +// becomes 'controlled' and is not responsive to user input. Use `position` +// if you need to have direct control of the element. +position: {x: number, y: number} } ``` @@ -168,7 +170,8 @@ var App = React.createClass({ ` takes all of the above `` options, with the exception of: +`` takes a limited subset of options: + +```js +{ + allowAnyClick: boolean, + cancel: string, + disabled: boolean, + enableUserSelectHack: boolean, + grid: [number, number], + handle: string, + onStart: DraggableEventHandler, + onDrag: DraggableEventHandler, + onStop: DraggableEventHandler + onMouseDown: (e: MouseEvent) => void +} +``` -* `axis` -* `bounds` -* `start` -* `zIndex` +Note that there is no start position. `` simply calls `drag` handlers with the below parameters, +indicating its position (as inferred from the underlying MouseEvent) and deltas. It is up to the parent +to set actual positions on ``. -Drag callbacks are called with the following parameters: +Drag callbacks (`onDragStart`, `onDrag`, `onDragEnd`) are called with the following parameters: ```js ( - event: Event, - ui:{ - node: Node - position: - { - // lastX + deltaX === clientX - deltaX: number, deltaY: number, - lastX: number, lastY: number, - clientX: number, clientY: number - } - } + event: Event, + data: { + node: HTMLElement, + // lastX + deltaX === x + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number + } ) ``` diff --git a/example/index.html b/example/index.html index 194374a5..79c44ee4 100644 --- a/example/index.html +++ b/example/index.html @@ -62,19 +62,22 @@ var App = React.createClass({ getInitialState: function () { return { + activeDrags: 0, deltaPosition: { - top: 0, left: 0 + x: 0, y: 0 }, - activeDrags: 0 + controlledPosition: { + x: -400, y: 200 + } }; }, handleDrag: function (e, ui) { - var {left, top} = this.state.deltaPosition; + const {x, y} = this.state.deltaPosition; this.setState({ deltaPosition: { - left: left + ui.deltaX, - top: top + ui.deltaY, + x: x + ui.deltaX, + y: y + ui.deltaY, } }); }, @@ -87,61 +90,82 @@ this.setState({activeDrags: --this.state.activeDrags}); }, + // For controlled component + adjustXPos: function(e) { + e.preventDefault(); + e.stopPropagation(); + const {x, y} = this.state.controlledPosition; + this.setState({controlledPosition: {x: x - 10, y}}); + }, + + adjustYPos: function(e) { + e.preventDefault(); + e.stopPropagation(); + const {controlledPosition} = this.state; + const {x, y} = this.state.controlledPosition; + this.setState({controlledPosition: {x, y: y - 10}}); + }, + + onControlledDragStop: function(e, position) { + const {x, y} = position; + this.setState({controlledPosition: {x, y}}); + }, + render: function () { - var drags = {onStart: this.onStart, onStop: this.onStop}; - var {top, left} = this.state.deltaPosition; + const dragHandlers = {onStart: this.onStart, onStop: this.onStop}; + const {deltaPosition, controlledPosition} = this.state; return (

React Draggable

-

Active Drags: {this.state.activeDrags}

+

Active DragHandlers: {this.state.activeDrags}

Demo Source

- +
I can be dragged anywhere
- +
I can only be dragged horizonally
- +
I can only be dragged vertically
- +
I track my deltas
-
top: {top.toFixed(0)}, left: {left.toFixed(0)}
+
x: {deltaPosition.x.toFixed(0)}, y: {deltaPosition.y.toFixed(0)}
- +
Drag here
You must click my handle to drag me
- +
Can't drag here
Dragging here works
- +
I snap to a 25 x 25 grid
- +
I snap to a 50 x 50 grid
- +
I can only be moved 100px in any direction.
- +
I can only be moved within my offsetParent.

Both parent padding and child margin work properly.
- +
I also can only be moved within my offsetParent.

Both parent padding and child margin work properly. @@ -149,19 +173,30 @@

React Draggable

- +
I can only be moved within the confines of the body element.
-
+
I already have an absolute position.
- + +
+ {"I have a default position of {x: 25, y: 25}, so I'm slightly offset."} +
+
+
- {"I have a start position of {x: 25, y: 25}, so I'm slightly offset."} + My position can be changed programmatically. +

+ Adjust x ({controlledPosition.x}) +

+

+ Adjust y ({controlledPosition.y}) +

diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index a7ff02f7..3e954415 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -1,20 +1,19 @@ // @flow -import {default as React, PropTypes} from 'react'; +import React, {PropTypes} from 'react'; import ReactDOM from 'react-dom'; // $FlowIgnore import classNames from 'classnames'; -import {createUIEvent, createCSSTransform, createSVGTransform} from './utils/domFns'; -import {canDragX, canDragY, getBoundPosition} from './utils/positionFns'; +import {createCSSTransform, createSVGTransform} from './utils/domFns'; +import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import DraggableCore from './DraggableCore'; import log from './utils/log'; +import type {DraggableEventHandler} from './utils/types'; -import type {CoreEvent} from './utils/domFns'; -export type CoreEventHandler = (e: Event, coreEvent: CoreEvent) => void | false; -export type DraggableState = { +type DraggableState = { dragging: boolean, dragged: boolean, - clientX: number, clientY: number, + x: number, y: number, slackX: number, slackY: number, isElementSVG: boolean }; @@ -74,17 +73,17 @@ export default class Draggable extends React.Component { */ bounds: PropTypes.oneOfType([ PropTypes.shape({ - left: PropTypes.Number, - right: PropTypes.Number, - top: PropTypes.Number, - bottom: PropTypes.Number + left: PropTypes.number, + right: PropTypes.number, + top: PropTypes.number, + bottom: PropTypes.number }), PropTypes.string, PropTypes.oneOf([false]) ]), /** - * `start` specifies the x and y that the dragged item should start at + * `defaultPosition` specifies the x and y that the dragged item should start at * * Example: * @@ -92,7 +91,7 @@ export default class Draggable extends React.Component { * let App = React.createClass({ * render: function () { * return ( - * + * *
I start with transformX: 25px and transformY: 25px;
*
* ); @@ -100,29 +99,35 @@ export default class Draggable extends React.Component { * }); * ``` */ - start: PropTypes.shape({ + defaultPosition: PropTypes.shape({ x: PropTypes.number, y: PropTypes.number }), /** - * `zIndex` specifies the zIndex to use while dragging. + * `position`, if present, defines the current position of the element. + * + * This is similar to how form elements in React work - if no `position` is supplied, the component + * is uncontrolled. * * Example: * * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I have a zIndex
- *
- * ); - * } - * }); + * let App = React.createClass({ + * render: function () { + * return ( + * + *
I start with transformX: 25px and transformY: 25px;
+ *
+ * ); + * } + * }); * ``` */ - zIndex: PropTypes.number, + position: PropTypes.shape({ + x: PropTypes.number, + y: PropTypes.number + }), /** * These properties should be defined on the child, not here. @@ -136,8 +141,8 @@ export default class Draggable extends React.Component { ...DraggableCore.defaultProps, axis: 'both', bounds: false, - start: {x: 0, y: 0}, - zIndex: NaN + defaultPosition: {x: 0, y: 0}, + position: null }; state: DraggableState = { @@ -148,7 +153,8 @@ export default class Draggable extends React.Component { dragged: false, // Current transform x and y. - clientX: this.props.start.x, clientY: this.props.start.y, + x: this.props.position ? this.props.position.x : this.props.defaultPosition.x, + y: this.props.position ? this.props.position.y : this.props.defaultPosition.y, // Used for compensating for out-of-bounds drags slackX: 0, slackY: 0, @@ -164,72 +170,85 @@ export default class Draggable extends React.Component { } } + componentWillReceiveProps(nextProps: Object) { + // Set x/y if position has changed + if (nextProps.position && + (!this.props.position || + nextProps.position.x !== this.props.position.x || + nextProps.position.y !== this.props.position.y + ) + ) { + this.setState({ x: nextProps.position.x, y: nextProps.position.y }); + } + } + componentWillUnmount() { this.setState({dragging: false}); // prevents invariant if unmounted while dragging } - onDragStart: CoreEventHandler = (e, coreEvent) => { - log('Draggable: onDragStart: %j', coreEvent.position); + onDragStart: DraggableEventHandler = (e, coreData) => { + log('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it. - let shouldStart = this.props.onStart(e, createUIEvent(this, coreEvent)); + const shouldStart = this.props.onStart(e, createDraggableData(this, coreData)); // Kills start event on core as well, so move handlers are never bound. if (shouldStart === false) return false; this.setState({dragging: true, dragged: true}); }; - onDrag: CoreEventHandler = (e, coreEvent) => { + onDrag: DraggableEventHandler = (e, coreData) => { if (!this.state.dragging) return false; - log('Draggable: onDrag: %j', coreEvent.position); + log('Draggable: onDrag: %j', coreData); - let uiEvent = createUIEvent(this, coreEvent); + const uiData = createDraggableData(this, coreData); - let newState = { - clientX: uiEvent.position.left, - clientY: uiEvent.position.top + const newState: $Shape = { + x: uiData.x, + y: uiData.y }; // Keep within bounds. if (this.props.bounds) { // Save original x and y. - let {clientX, clientY} = newState; + const {x, y} = newState; // Add slack to the values used to calculate bound position. This will ensure that if // we start removing slack, the element won't react to it right away until it's been // completely removed. - newState.clientX += this.state.slackX; - newState.clientY += this.state.slackY; + newState.x += this.state.slackX; + newState.y += this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries. - [newState.clientX, newState.clientY] = getBoundPosition(this, newState.clientX, newState.clientY); + // $FlowBug + [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y); // Recalculate slack by noting how much was shaved by the boundPosition handler. - newState.slackX = this.state.slackX + (clientX - newState.clientX); - newState.slackY = this.state.slackY + (clientY - newState.clientY); + newState.slackX = this.state.slackX + (x - newState.x); + newState.slackY = this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect. - uiEvent.position.left = clientX; - uiEvent.position.top = clientY; - uiEvent.deltaX = newState.clientX - this.state.clientX; - uiEvent.deltaY = newState.clientY - this.state.clientY; + uiData.x = x; + uiData.y = y; + uiData.deltaX = newState.x - this.state.x; + uiData.deltaY = newState.y - this.state.y; } // Short-circuit if user's callback killed it. - let shouldUpdate = this.props.onDrag(e, uiEvent); + const shouldUpdate = this.props.onDrag(e, uiData); if (shouldUpdate === false) return false; this.setState(newState); }; - onDragStop: CoreEventHandler = (e, coreEvent) => { + onDragStop: DraggableEventHandler = (e, coreData) => { if (!this.state.dragging) return false; // Short-circuit if user's callback killed it. - let shouldStop = this.props.onStop(e, createUIEvent(this, coreEvent)); + const shouldStop = this.props.onStop(e, createDraggableData(this, coreData)); if (shouldStop === false) return false; - log('Draggable: onDragStop: %j', coreEvent.position); + log('Draggable: onDragStop: %j', coreData); this.setState({ dragging: false, @@ -245,16 +264,18 @@ export default class Draggable extends React.Component { // without worrying about whether or not it is relatively or absolutely positioned. // If the item you are dragging already has a transform set, wrap it in a so // has a clean slate. + const controlled = Boolean(this.props.position); + const position = this.props.position || this.props.defaultPosition; const transformOpts = { // Set left if horizontal drag is enabled - x: canDragX(this) ? - this.state.clientX : - this.props.start.x, + x: canDragX(this) && !controlled ? + this.state.x : + position.x, // Set top if vertical drag is enabled - y: canDragY(this) ? - this.state.clientY : - this.props.start.y + y: canDragY(this) && !controlled ? + this.state.y : + position.y }; // If this element was SVG, we use the `transform` attribute. @@ -264,13 +285,8 @@ export default class Draggable extends React.Component { style = createCSSTransform(transformOpts); } - // zIndex option - if (this.state.dragging && !isNaN(this.props.zIndex)) { - style.zIndex = this.props.zIndex; - } - // Mark with class while dragging - let className = classNames((this.props.children.props.className || ''), 'react-draggable', { + const className = classNames((this.props.children.props.className || ''), 'react-draggable', { 'react-draggable-dragging': this.state.dragging, 'react-draggable-dragged': this.state.dragged }); diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 88941216..0539059b 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -1,11 +1,13 @@ // @flow -import {default as React, PropTypes} from 'react'; -import {matchesSelector, createCoreEvent, addEvent, removeEvent, addUserSelectStyles, +import React, {PropTypes} from 'react'; +import {matchesSelector, addEvent, removeEvent, addUserSelectStyles, removeUserSelectStyles, styleHacks} from './utils/domFns'; -import {getControlPosition, snapToGrid} from './utils/positionFns'; +import {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import log from './utils/log'; +import type {EventHandler} from './utils/types'; + // Simple abstraction for dragging events names. const eventsFor = { touch: { @@ -23,11 +25,11 @@ const eventsFor = { // Default to mouse events. let dragEventFor = eventsFor.mouse; -type EventHandler = (e: Event) => void; type CoreState = { dragging: boolean, - lastX: ?number, - lastY: ?number + lastX: number, + lastY: number, + touchIdentifier: number }; // @@ -53,20 +55,6 @@ export default class DraggableCore extends React.Component { /** * `disabled`, if true, stops the from dragging. All handlers, * with the exception of `onMouseDown`, will not fire. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I can't be dragged
- *
- * ); - * } - * }); - * ``` */ disabled: PropTypes.bool, @@ -79,20 +67,6 @@ export default class DraggableCore extends React.Component { /** * `grid` specifies the x and y that dragging should snap to. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I snap to a 25 x 25 grid
- *
- * ); - * } - * }); - * ``` */ grid: PropTypes.arrayOf(PropTypes.number), @@ -130,7 +104,7 @@ export default class DraggableCore extends React.Component { * *
*
You can't drag from here
- *
Dragging here works fine
+ *
Dragging here works fine
*
*
* ); @@ -143,68 +117,24 @@ export default class DraggableCore extends React.Component { /** * Called when dragging starts. * If this function returns the boolean false, dragging will be canceled. - * - * Example: - * - * ```js - * function (event, ui) {} - * ``` - * - * `event` is the Event that was triggered. - * `ui` is an object: - * - * ```js - * { - * position: {top: 0, left: 0} - * } - * ``` */ onStart: PropTypes.func, /** * Called while dragging. * If this function returns the boolean false, dragging will be canceled. - * - * Example: - * - * ```js - * function (event, ui) {} - * ``` - * - * `event` is the Event that was triggered. - * `ui` is an object: - * - * ```js - * { - * position: {top: 0, left: 0} - * } - * ``` */ onDrag: PropTypes.func, /** * Called when dragging stops. - * - * Example: - * - * ```js - * function (event, ui) {} - * ``` - * - * `event` is the Event that was triggered. - * `ui` is an object: - * - * ```js - * { - * position: {top: 0, left: 0} - * } - * ``` + * If this function returns the boolean false, the drag will remain active. */ onStop: PropTypes.func, /** * A workaround option which can be passed if onMouseDown needs to be accessed, - * since it'll always be blocked (due to that there's internal use of onMouseDown) + * since it'll always be blocked (as there is internal use of onMouseDown) */ onMouseDown: PropTypes.func, @@ -233,7 +163,8 @@ export default class DraggableCore extends React.Component { state: CoreState = { dragging: false, // Used while dragging to determine deltas. - lastX: null, lastY: null + lastX: NaN, lastY: NaN, + touchIdentifier: NaN }; componentWillUnmount() { @@ -246,7 +177,7 @@ export default class DraggableCore extends React.Component { if (this.props.enableUserSelectHack) removeUserSelectStyles(); } - handleDragStart: EventHandler = (e) => { + handleDragStart: EventHandler = (e) => { // Make it possible to attach event handlers on top of this one. this.props.onMouseDown(e); @@ -255,6 +186,7 @@ export default class DraggableCore extends React.Component { // Short circuit if handle or cancel prop was provided and selector doesn't match. if (this.props.disabled || + (!(e.target instanceof Node)) || (this.props.handle && !matchesSelector(e.target, this.props.handle)) || (this.props.cancel && matchesSelector(e.target, this.props.cancel))) { return; @@ -272,16 +204,16 @@ export default class DraggableCore extends React.Component { if (this.props.enableUserSelectHack) addUserSelectStyles(); // Get the current drag point from the event. This is used as the offset. - let {x, y} = getControlPosition(e, this); + const {x, y} = getControlPosition(e, this); // Create an event object with all the data parents need to make a decision here. - let coreEvent = createCoreEvent(this, x, y); + const coreEvent = createCoreData(this, x, y); - log('DraggableCore: handleDragStart: %j', coreEvent.position); + log('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel. log('calling', this.props.onStart); - let shouldUpdate = this.props.onStart(e, coreEvent); + const shouldUpdate = this.props.onStart(e, coreEvent); if (shouldUpdate === false) return; @@ -302,7 +234,7 @@ export default class DraggableCore extends React.Component { addEvent(document, dragEventFor.stop, this.handleDragStop); }; - handleDrag: EventHandler = (e) => { + handleDrag: EventHandler = (e) => { // Return if this is a touch event, but not the correct one for this element if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return; @@ -316,14 +248,14 @@ export default class DraggableCore extends React.Component { x = this.state.lastX + deltaX, y = this.state.lastY + deltaY; } - const coreEvent = createCoreEvent(this, x, y); + const coreEvent = createCoreData(this, x, y); - log('DraggableCore: handleDrag: %j', coreEvent.position); + log('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end. const shouldUpdate = this.props.onDrag(e, coreEvent); if (shouldUpdate === false) { - this.handleDragStop({}); + this.handleDragStop(new MouseEvent()); return; } @@ -333,7 +265,7 @@ export default class DraggableCore extends React.Component { }); }; - handleDragStop: EventHandler = (e) => { + handleDragStop: EventHandler = (e) => { if (!this.state.dragging) return; // Short circuit if this is not the correct touch event. `changedTouches` contains all @@ -343,16 +275,16 @@ export default class DraggableCore extends React.Component { // Remove user-select hack if (this.props.enableUserSelectHack) removeUserSelectStyles(); - let {x, y} = getControlPosition(e, this); - const coreEvent = createCoreEvent(this, x, y); + const {x, y} = getControlPosition(e, this); + const coreEvent = createCoreData(this, x, y); - log('DraggableCore: handleDragStop: %j', coreEvent.position); + log('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el. this.setState({ dragging: false, - lastX: null, - lastY: null + lastX: NaN, + lastY: NaN }); // Call event handler @@ -364,27 +296,27 @@ export default class DraggableCore extends React.Component { removeEvent(document, dragEventFor.stop, this.handleDragStop); }; - onMouseDown: EventHandler = (e) => { + onMouseDown: EventHandler = (e) => { dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse return this.handleDragStart(e); }; - onMouseUp: EventHandler = (e) => { + onMouseUp: EventHandler = (e) => { dragEventFor = eventsFor.mouse; return this.handleDragStop(e); }; // Same as onMouseDown (start drag), but now consider this a touch device. - onTouchStart: EventHandler = (e) => { + onTouchStart: EventHandler = (e) => { // We're on a touch device now, so change the event handlers dragEventFor = eventsFor.touch; return this.handleDragStart(e); }; - onTouchEnd: EventHandler = (e) => { + onTouchEnd: EventHandler = (e) => { // We're on a touch device now, so change the event handlers dragEventFor = eventsFor.touch; diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index f3026285..1601b655 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -1,30 +1,11 @@ // @flow -import {findInArray, isFunction, isNum, int} from './shims'; +import {findInArray, isFunction, int} from './shims'; import browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix'; -import ReactDOM from 'react-dom'; -import type Draggable from '../Draggable'; -import type DraggableCore from '../DraggableCore'; - -export type CoreEvent = { - node: HTMLElement, - position: { - deltaX: number, deltaY: number, - lastX: number, lastY: number, - clientX: number, clientY: number - } -}; - -export type UIEvent = { - node: HTMLElement, - position: { - left: number, top: number - }, - deltaX: number, deltaY: number -}; +import type {ControlPosition} from './types'; let matchesSelectorFunc = ''; -export function matchesSelector(el: HTMLElement, selector: string): boolean { +export function matchesSelector(el: Node, selector: string): boolean { if (!matchesSelectorFunc) { matchesSelectorFunc = findInArray([ 'matches', @@ -70,7 +51,7 @@ export function outerHeight(node: HTMLElement): number { // This is deliberately excluding margin for our calculations, since we are using // offsetTop which is including margin. See getBoundPosition let height = node.clientHeight; - let computedStyle = window.getComputedStyle(node); + const computedStyle = window.getComputedStyle(node); height += int(computedStyle.borderTopWidth); height += int(computedStyle.borderBottomWidth); return height; @@ -80,14 +61,14 @@ export function outerWidth(node: HTMLElement): number { // This is deliberately excluding margin for our calculations, since we are using // offsetLeft which is including margin. See getBoundPosition let width = node.clientWidth; - let computedStyle = window.getComputedStyle(node); + const computedStyle = window.getComputedStyle(node); width += int(computedStyle.borderLeftWidth); width += int(computedStyle.borderRightWidth); return width; } export function innerHeight(node: HTMLElement): number { let height = node.clientHeight; - let computedStyle = window.getComputedStyle(node); + const computedStyle = window.getComputedStyle(node); height -= int(computedStyle.paddingTop); height -= int(computedStyle.paddingBottom); return height; @@ -95,14 +76,14 @@ export function innerHeight(node: HTMLElement): number { export function innerWidth(node: HTMLElement): number { let width = node.clientWidth; - let computedStyle = window.getComputedStyle(node); + const computedStyle = window.getComputedStyle(node); width -= int(computedStyle.paddingLeft); width -= int(computedStyle.paddingRight); return width; } // Get from offsetParent -export function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): {x: number, y: number} { +export function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition { const evt = e.targetTouches ? e.targetTouches[0] : e; const offsetParent = node.offsetParent || document.body; @@ -131,12 +112,12 @@ const userSelect = browserPrefixToStyle('user-select', userSelectPrefix); const userSelectStyle = `;${userSelect}: none;`; export function addUserSelectStyles() { - let style = document.body.getAttribute('style') || ''; + const style = document.body.getAttribute('style') || ''; document.body.setAttribute('style', style + userSelectStyle); } export function removeUserSelectStyles() { - let style = document.body.getAttribute('style') || ''; + const style = document.body.getAttribute('style') || ''; document.body.setAttribute('style', style.replace(userSelectStyle, '')); } @@ -148,40 +129,3 @@ export function styleHacks(childStyle: Object = {}): Object { ...childStyle }; } - -// Create an event exposed by -export function createCoreEvent(draggable: DraggableCore, clientX: number, clientY: number): CoreEvent { - // State changes are often (but not always!) async. We want the latest value. - let state = draggable._pendingState || draggable.state; - let isStart = !isNum(state.lastX); - - return { - node: ReactDOM.findDOMNode(draggable), - position: isStart ? - // If this is our first move, use the clientX and clientY as last coords. - { - deltaX: 0, deltaY: 0, - lastX: clientX, lastY: clientY, - clientX: clientX, clientY: clientY - } : - // Otherwise calculate proper values. - { - deltaX: clientX - state.lastX, deltaY: clientY - state.lastY, - lastX: state.lastX, lastY: state.lastY, - clientX: clientX, clientY: clientY - } - }; -} - -// Create an event exposed by -export function createUIEvent(draggable: Draggable, coreEvent: CoreEvent): UIEvent { - return { - node: ReactDOM.findDOMNode(draggable), - position: { - left: draggable.state.clientX + coreEvent.position.deltaX, - top: draggable.state.clientY + coreEvent.position.deltaY - }, - deltaX: coreEvent.position.deltaX, - deltaY: coreEvent.position.deltaY - }; -} diff --git a/lib/utils/log.es6 b/lib/utils/log.es6 index b2ec3c3e..ee2c37f2 100644 --- a/lib/utils/log.es6 +++ b/lib/utils/log.es6 @@ -1,4 +1,5 @@ // @flow +/*eslint no-console:0*/ export default function log(...args: any) { if (process.env.DRAGGABLE_DEBUG) console.log(...args); } diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index d2538790..79603eba 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -4,22 +4,17 @@ import ReactDOM from 'react-dom'; import {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns'; import type Draggable from '../Draggable'; +import type {Bounds, ControlPosition, DraggableData} from './types'; import type DraggableCore from '../DraggableCore'; -export type ControlPosition = { - x: number, y: number -}; -export type Bounds = { - left: number, top: number, right: number, bottom: number -}; -export function getBoundPosition(draggable: Draggable, clientX: number, clientY: number): [number, number] { +export function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] { // If no bounds, short-circuit and move on - if (!draggable.props.bounds) return [clientX, clientY]; + if (!draggable.props.bounds) return [x, y]; // Clone new bounds let {bounds} = draggable.props; bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds); - let node = ReactDOM.findDOMNode(draggable); + const node = ReactDOM.findDOMNode(draggable); if (typeof bounds === 'string') { let boundNode; @@ -29,8 +24,8 @@ export function getBoundPosition(draggable: Draggable, clientX: number, clientY: boundNode = document.querySelector(bounds); if (!boundNode) throw new Error('Bounds selector "' + bounds + '" could not find an element.'); } - let nodeStyle = window.getComputedStyle(node); - let boundNodeStyle = window.getComputedStyle(boundNode); + const nodeStyle = window.getComputedStyle(node); + const boundNodeStyle = window.getComputedStyle(boundNode); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. bounds = { left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + @@ -43,19 +38,19 @@ export function getBoundPosition(draggable: Draggable, clientX: number, clientY: } // Keep x and y below right and bottom limits... - if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right); - if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom); + if (isNum(bounds.right)) x = Math.min(x, bounds.right); + if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits. - if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left); - if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top); + if (isNum(bounds.left)) x = Math.max(x, bounds.left); + if (isNum(bounds.top)) y = Math.max(y, bounds.top); - return [clientX, clientY]; + return [x, y]; } export function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] { - let x = Math.round(pendingX / grid[0]) * grid[0]; - let y = Math.round(pendingY / grid[1]) * grid[1]; + const x = Math.round(pendingX / grid[0]) * grid[0]; + const y = Math.round(pendingY / grid[1]) * grid[1]; return [x, y]; } @@ -69,8 +64,45 @@ export function canDragY(draggable: Draggable): boolean { // Get {x, y} positions from event. export function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition { - const node = ReactDOM.findDOMNode(draggableCore); - return offsetXYFromParentOf(e, node); + return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore)); +} + +// Create an data object exposed by 's events +export function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData { + // State changes are often (but not always!) async. We want the latest value. + const state = draggable._pendingState || draggable.state; + const isStart = !isNum(state.lastX); + + if (isStart) { + // If this is our first move, use the x and y as last coords. + return { + node: ReactDOM.findDOMNode(this), + deltaX: 0, deltaY: 0, + lastX: x, lastY: y, + x: x, y: y + }; + } else { + // Otherwise calculate proper values. + return { + node: ReactDOM.findDOMNode(this), + deltaX: x - state.lastX, deltaY: y - state.lastY, + lastX: state.lastX, lastY: state.lastY, + x: x, y: y + }; + } +} + +// Create an data exposed by 's events +export function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData { + return { + node: coreData.node, + x: draggable.state.x + coreData.deltaX, + y: draggable.state.y + coreData.deltaY, + deltaX: coreData.deltaX, + deltaY: coreData.deltaY, + lastX: draggable.state.x, + lastY: draggable.state.y + }; } // A lot faster than stringify/parse diff --git a/lib/utils/types.es6 b/lib/utils/types.es6 new file mode 100644 index 00000000..3ad2ac6a --- /dev/null +++ b/lib/utils/types.es6 @@ -0,0 +1,16 @@ +// @flow + +export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false; + +export type DraggableData = { + node: HTMLElement, + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number +}; + +export type Bounds = { + left: number, top: number, right: number, bottom: number +}; +export type ControlPosition = {x: number, y: number}; +export type EventHandler = (e: T) => void; diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 9b391259..822b2417 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -1,4 +1,4 @@ -/*eslint no-unused-vars:0*/ +/*eslint no-unused-vars:0, no-console:0*/ import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react/lib/ReactTestUtils'; @@ -387,8 +387,8 @@ describe('react-draggable', function () { describe('draggable callbacks', function () { it('should call back on drag', function () { function onDrag(event, data) { - expect(data.position.left).toEqual(100); - expect(data.position.top).toEqual(100); + expect(data.x).toEqual(100); + expect(data.y).toEqual(100); expect(data.deltaX).toEqual(100); expect(data.deltaY).toEqual(100); } @@ -404,8 +404,8 @@ describe('react-draggable', function () { it('should call back with offset left/top, not client', function () { function onDrag(event, data) { - expect(data.position.left).toEqual(100); - expect(data.position.top).toEqual(100); + expect(data.x).toEqual(100); + expect(data.y).toEqual(100); expect(data.deltaX).toEqual(100); expect(data.deltaY).toEqual(100); } From cb258dcd0389628892428488d686312dd318ce91 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 14 Apr 2016 17:19:58 -0500 Subject: [PATCH 166/412] release v2.0.0-beta1 --- bower.json | 5 +- dist/react-draggable.js | 322 +++++++++++++------------------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 6 files changed, 138 insertions(+), 197 deletions(-) diff --git a/bower.json b/bower.json index 6125d5fb..560c07cb 100644 --- a/bower.json +++ b/bower.json @@ -1,9 +1,10 @@ { "name": "react-draggable", - "version": "1.4.0-beta1", + "version": "2.0.0-beta1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ - "Matt Zabriskie" + "Matt Zabriskie", + "Samuel Reed" ], "description": "React draggable component", "main": "./dist/react-draggable.js", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 3fff8a8e..b2b40710 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -137,80 +137,82 @@ return /******/ (function(modules) { // webpackBootstrap dragged: false, // Current transform x and y. - clientX: _this.props.start.x, clientY: _this.props.start.y, + x: _this.props.position ? _this.props.position.x : _this.props.defaultPosition.x, + y: _this.props.position ? _this.props.position.y : _this.props.defaultPosition.y, // Used for compensating for out-of-bounds drags slackX: 0, slackY: 0, // Can only determine if SVG after mounting isElementSVG: false - }, _this.onDragStart = function (e, coreEvent) { - (0, _log2.default)('Draggable: onDragStart: %j', coreEvent.position); + }, _this.onDragStart = function (e, coreData) { + (0, _log2.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it. - var shouldStart = _this.props.onStart(e, (0, _domFns.createUIEvent)(_this, coreEvent)); + var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_this, coreData)); // Kills start event on core as well, so move handlers are never bound. if (shouldStart === false) return false; _this.setState({ dragging: true, dragged: true }); - }, _this.onDrag = function (e, coreEvent) { + }, _this.onDrag = function (e, coreData) { if (!_this.state.dragging) return false; - (0, _log2.default)('Draggable: onDrag: %j', coreEvent.position); + (0, _log2.default)('Draggable: onDrag: %j', coreData); - var uiEvent = (0, _domFns.createUIEvent)(_this, coreEvent); + var uiData = (0, _positionFns.createDraggableData)(_this, coreData); var newState = { - clientX: uiEvent.position.left, - clientY: uiEvent.position.top + x: uiData.x, + y: uiData.y }; // Keep within bounds. if (_this.props.bounds) { // Save original x and y. - var _clientX = newState.clientX; - var _clientY = newState.clientY; + var _x = newState.x; + var _y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if // we start removing slack, the element won't react to it right away until it's been // completely removed. - newState.clientX += _this.state.slackX; - newState.clientY += _this.state.slackY; + newState.x += _this.state.slackX; + newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries. + // $FlowBug // Recalculate slack by noting how much was shaved by the boundPosition handler. - var _getBoundPosition = (0, _positionFns.getBoundPosition)(_this, newState.clientX, newState.clientY); + var _getBoundPosition = (0, _positionFns.getBoundPosition)(_this, newState.x, newState.y); var _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2); - newState.clientX = _getBoundPosition2[0]; - newState.clientY = _getBoundPosition2[1]; - newState.slackX = _this.state.slackX + (_clientX - newState.clientX); - newState.slackY = _this.state.slackY + (_clientY - newState.clientY); + newState.x = _getBoundPosition2[0]; + newState.y = _getBoundPosition2[1]; + newState.slackX = _this.state.slackX + (_x - newState.x); + newState.slackY = _this.state.slackY + (_y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect. - uiEvent.position.left = _clientX; - uiEvent.position.top = _clientY; - uiEvent.deltaX = newState.clientX - _this.state.clientX; - uiEvent.deltaY = newState.clientY - _this.state.clientY; + uiData.x = _x; + uiData.y = _y; + uiData.deltaX = newState.x - _this.state.x; + uiData.deltaY = newState.y - _this.state.y; } // Short-circuit if user's callback killed it. - var shouldUpdate = _this.props.onDrag(e, uiEvent); + var shouldUpdate = _this.props.onDrag(e, uiData); if (shouldUpdate === false) return false; _this.setState(newState); - }, _this.onDragStop = function (e, coreEvent) { + }, _this.onDragStop = function (e, coreData) { if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it. - var shouldStop = _this.props.onStop(e, (0, _domFns.createUIEvent)(_this, coreEvent)); + var shouldStop = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_this, coreData)); if (shouldStop === false) return false; - (0, _log2.default)('Draggable: onDragStop: %j', coreEvent.position); + (0, _log2.default)('Draggable: onDragStop: %j', coreData); _this.setState({ dragging: false, @@ -228,6 +230,14 @@ return /******/ (function(modules) { // webpackBootstrap this.setState({ isElementSVG: true }); } } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + // Set x/y if position has changed + if (nextProps.position && (!this.props.position || nextProps.position.x !== this.props.position.x || nextProps.position.y !== this.props.position.y)) { + this.setState({ x: nextProps.position.x, y: nextProps.position.y }); + } + } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { @@ -243,12 +253,14 @@ return /******/ (function(modules) { // webpackBootstrap // without worrying about whether or not it is relatively or absolutely positioned. // If the item you are dragging already has a transform set, wrap it in a so // has a clean slate. + var controlled = Boolean(this.props.position); + var position = this.props.position || this.props.defaultPosition; var transformOpts = { // Set left if horizontal drag is enabled - x: (0, _positionFns.canDragX)(this) ? this.state.clientX : this.props.start.x, + x: (0, _positionFns.canDragX)(this) && !controlled ? this.state.x : position.x, // Set top if vertical drag is enabled - y: (0, _positionFns.canDragY)(this) ? this.state.clientY : this.props.start.y + y: (0, _positionFns.canDragY)(this) && !controlled ? this.state.y : position.y }; // If this element was SVG, we use the `transform` attribute. @@ -258,11 +270,6 @@ return /******/ (function(modules) { // webpackBootstrap style = (0, _domFns.createCSSTransform)(transformOpts); } - // zIndex option - if (this.state.dragging && !isNaN(this.props.zIndex)) { - style.zIndex = this.props.zIndex; - } - // Mark with class while dragging var className = (0, _classnames2.default)(this.props.children.props.className || '', 'react-draggable', { 'react-draggable-dragging': this.state.dragging, @@ -331,14 +338,14 @@ return /******/ (function(modules) { // webpackBootstrap * ``` */ bounds: _react.PropTypes.oneOfType([_react.PropTypes.shape({ - left: _react.PropTypes.Number, - right: _react.PropTypes.Number, - top: _react.PropTypes.Number, - bottom: _react.PropTypes.Number + left: _react.PropTypes.number, + right: _react.PropTypes.number, + top: _react.PropTypes.number, + bottom: _react.PropTypes.number }), _react.PropTypes.string, _react.PropTypes.oneOf([false])]), /** - * `start` specifies the x and y that the dragged item should start at + * `defaultPosition` specifies the x and y that the dragged item should start at * * Example: * @@ -346,7 +353,7 @@ return /******/ (function(modules) { // webpackBootstrap * let App = React.createClass({ * render: function () { * return ( - * + * *
I start with transformX: 25px and transformY: 25px;
*
* ); @@ -354,29 +361,35 @@ return /******/ (function(modules) { // webpackBootstrap * }); * ``` */ - start: _react.PropTypes.shape({ + defaultPosition: _react.PropTypes.shape({ x: _react.PropTypes.number, y: _react.PropTypes.number }), /** - * `zIndex` specifies the zIndex to use while dragging. + * `position`, if present, defines the current position of the element. + * + * This is similar to how form elements in React work - if no `position` is supplied, the component + * is uncontrolled. * * Example: * * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I have a zIndex
- *
- * ); - * } - * }); + * let App = React.createClass({ + * render: function () { + * return ( + * + *
I start with transformX: 25px and transformY: 25px;
+ *
+ * ); + * } + * }); * ``` */ - zIndex: _react.PropTypes.number, + position: _react.PropTypes.shape({ + x: _react.PropTypes.number, + y: _react.PropTypes.number + }), /** * These properties should be defined on the child, not here. @@ -388,8 +401,8 @@ return /******/ (function(modules) { // webpackBootstrap Draggable.defaultProps = _extends({}, _DraggableCore2.default.defaultProps, { axis: 'both', bounds: false, - start: { x: 0, y: 0 }, - zIndex: NaN + defaultPosition: { x: 0, y: 0 }, + position: null }); exports.default = Draggable; @@ -484,8 +497,6 @@ return /******/ (function(modules) { // webpackBootstrap exports.addUserSelectStyles = addUserSelectStyles; exports.removeUserSelectStyles = removeUserSelectStyles; exports.styleHacks = styleHacks; - exports.createCoreEvent = createCoreEvent; - exports.createUIEvent = createUIEvent; var _shims = __webpack_require__(6); @@ -493,10 +504,6 @@ return /******/ (function(modules) { // webpackBootstrap var _getPrefix2 = _interopRequireDefault(_getPrefix); - var _reactDom = __webpack_require__(3); - - var _reactDom2 = _interopRequireDefault(_reactDom); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -631,43 +638,6 @@ return /******/ (function(modules) { // webpackBootstrap touchAction: 'none' }, childStyle); } - - // Create an event exposed by - function createCoreEvent(draggable, clientX, clientY) { - // State changes are often (but not always!) async. We want the latest value. - var state = draggable._pendingState || draggable.state; - var isStart = !(0, _shims.isNum)(state.lastX); - - return { - node: _reactDom2.default.findDOMNode(draggable), - position: isStart ? - // If this is our first move, use the clientX and clientY as last coords. - { - deltaX: 0, deltaY: 0, - lastX: clientX, lastY: clientY, - clientX: clientX, clientY: clientY - } : - // Otherwise calculate proper values. - { - deltaX: clientX - state.lastX, deltaY: clientY - state.lastY, - lastX: state.lastX, lastY: state.lastY, - clientX: clientX, clientY: clientY - } - }; - } - - // Create an event exposed by - function createUIEvent(draggable, coreEvent) { - return { - node: _reactDom2.default.findDOMNode(draggable), - position: { - left: draggable.state.clientX + coreEvent.position.deltaX, - top: draggable.state.clientY + coreEvent.position.deltaY - }, - deltaX: coreEvent.position.deltaX, - deltaY: coreEvent.position.deltaY - }; - } /***/ }, /* 6 */ @@ -785,6 +755,8 @@ return /******/ (function(modules) { // webpackBootstrap exports.canDragX = canDragX; exports.canDragY = canDragY; exports.getControlPosition = getControlPosition; + exports.createCoreData = createCoreData; + exports.createDraggableData = createDraggableData; var _shims = __webpack_require__(6); @@ -796,9 +768,9 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function getBoundPosition(draggable, clientX, clientY) { + function getBoundPosition(draggable, x, y) { // If no bounds, short-circuit and move on - if (!draggable.props.bounds) return [clientX, clientY]; + if (!draggable.props.bounds) return [x, y]; // Clone new bounds var bounds = draggable.props.bounds; @@ -826,14 +798,14 @@ return /******/ (function(modules) { // webpackBootstrap } // Keep x and y below right and bottom limits... - if ((0, _shims.isNum)(bounds.right)) clientX = Math.min(clientX, bounds.right); - if ((0, _shims.isNum)(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom); + if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right); + if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits. - if ((0, _shims.isNum)(bounds.left)) clientX = Math.max(clientX, bounds.left); - if ((0, _shims.isNum)(bounds.top)) clientY = Math.max(clientY, bounds.top); + if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left); + if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top); - return [clientX, clientY]; + return [x, y]; } function snapToGrid(grid, pendingX, pendingY) { @@ -852,8 +824,45 @@ return /******/ (function(modules) { // webpackBootstrap // Get {x, y} positions from event. function getControlPosition(e, draggableCore) { - var node = _reactDom2.default.findDOMNode(draggableCore); - return (0, _domFns.offsetXYFromParentOf)(e, node); + return (0, _domFns.offsetXYFromParentOf)(e, _reactDom2.default.findDOMNode(draggableCore)); + } + + // Create an data object exposed by 's events + function createCoreData(draggable, x, y) { + // State changes are often (but not always!) async. We want the latest value. + var state = draggable._pendingState || draggable.state; + var isStart = !(0, _shims.isNum)(state.lastX); + + if (isStart) { + // If this is our first move, use the x and y as last coords. + return { + node: _reactDom2.default.findDOMNode(this), + deltaX: 0, deltaY: 0, + lastX: x, lastY: y, + x: x, y: y + }; + } else { + // Otherwise calculate proper values. + return { + node: _reactDom2.default.findDOMNode(this), + deltaX: x - state.lastX, deltaY: y - state.lastY, + lastX: state.lastX, lastY: state.lastY, + x: x, y: y + }; + } + } + + // Create an data exposed by 's events + function createDraggableData(draggable, coreData) { + return { + node: coreData.node, + x: draggable.state.x + coreData.deltaX, + y: draggable.state.y + coreData.deltaY, + deltaX: coreData.deltaX, + deltaY: coreData.deltaY, + lastX: draggable.state.x, + lastY: draggable.state.y + }; } // A lot faster than stringify/parse @@ -943,7 +952,8 @@ return /******/ (function(modules) { // webpackBootstrap return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.state = { dragging: false, // Used while dragging to determine deltas. - lastX: null, lastY: null + lastX: NaN, lastY: NaN, + touchIdentifier: NaN }, _this.handleDragStart = function (e) { // Make it possible to attach event handlers on top of this one. _this.props.onMouseDown(e); @@ -952,7 +962,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Short circuit if handle or cancel prop was provided and selector doesn't match. - if (_this.props.disabled || _this.props.handle && !(0, _domFns.matchesSelector)(e.target, _this.props.handle) || _this.props.cancel && (0, _domFns.matchesSelector)(e.target, _this.props.cancel)) { + if (_this.props.disabled || !(e.target instanceof Node) || _this.props.handle && !(0, _domFns.matchesSelector)(e.target, _this.props.handle) || _this.props.cancel && (0, _domFns.matchesSelector)(e.target, _this.props.cancel)) { return; } @@ -976,9 +986,9 @@ return /******/ (function(modules) { // webpackBootstrap // Create an event object with all the data parents need to make a decision here. - var coreEvent = (0, _domFns.createCoreEvent)(_this, x, y); + var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - (0, _log2.default)('DraggableCore: handleDragStart: %j', coreEvent.position); + (0, _log2.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel. (0, _log2.default)('calling', _this.props.onStart); @@ -1026,14 +1036,14 @@ return /******/ (function(modules) { // webpackBootstrap x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY; } - var coreEvent = (0, _domFns.createCoreEvent)(_this, x, y); + var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - (0, _log2.default)('DraggableCore: handleDrag: %j', coreEvent.position); + (0, _log2.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end. var shouldUpdate = _this.props.onDrag(e, coreEvent); if (shouldUpdate === false) { - _this.handleDragStop({}); + _this.handleDragStop(new MouseEvent()); return; } @@ -1056,15 +1066,15 @@ return /******/ (function(modules) { // webpackBootstrap var x = _getControlPosition3.x; var y = _getControlPosition3.y; - var coreEvent = (0, _domFns.createCoreEvent)(_this, x, y); + var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent.position); + (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el. _this.setState({ dragging: false, - lastX: null, - lastY: null + lastX: NaN, + lastY: NaN }); // Call event handler @@ -1143,20 +1153,6 @@ return /******/ (function(modules) { // webpackBootstrap /** * `disabled`, if true, stops the from dragging. All handlers, * with the exception of `onMouseDown`, will not fire. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I can't be dragged
- *
- * ); - * } - * }); - * ``` */ disabled: _react.PropTypes.bool, @@ -1169,20 +1165,6 @@ return /******/ (function(modules) { // webpackBootstrap /** * `grid` specifies the x and y that dragging should snap to. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I snap to a 25 x 25 grid
- *
- * ); - * } - * }); - * ``` */ grid: _react.PropTypes.arrayOf(_react.PropTypes.number), @@ -1220,7 +1202,7 @@ return /******/ (function(modules) { // webpackBootstrap * *
*
You can't drag from here
- *
Dragging here works fine
+ *
Dragging here works fine
*
*
* ); @@ -1233,68 +1215,24 @@ return /******/ (function(modules) { // webpackBootstrap /** * Called when dragging starts. * If this function returns the boolean false, dragging will be canceled. - * - * Example: - * - * ```js - * function (event, ui) {} - * ``` - * - * `event` is the Event that was triggered. - * `ui` is an object: - * - * ```js - * { - * position: {top: 0, left: 0} - * } - * ``` */ onStart: _react.PropTypes.func, /** * Called while dragging. * If this function returns the boolean false, dragging will be canceled. - * - * Example: - * - * ```js - * function (event, ui) {} - * ``` - * - * `event` is the Event that was triggered. - * `ui` is an object: - * - * ```js - * { - * position: {top: 0, left: 0} - * } - * ``` */ onDrag: _react.PropTypes.func, /** * Called when dragging stops. - * - * Example: - * - * ```js - * function (event, ui) {} - * ``` - * - * `event` is the Event that was triggered. - * `ui` is an object: - * - * ```js - * { - * position: {top: 0, left: 0} - * } - * ``` + * If this function returns the boolean false, the drag will remain active. */ onStop: _react.PropTypes.func, /** * A workaround option which can be passed if onMouseDown needs to be accessed, - * since it'll always be blocked (due to that there's internal use of onMouseDown) + * since it'll always be blocked (as there is internal use of onMouseDown) */ onMouseDown: _react.PropTypes.func, @@ -1330,6 +1268,8 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); exports.default = log; + + /*eslint no-console:0*/ function log() { var _console; diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index f30a1f7e..5305e5f0 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 764021ff5f433cecdf2e",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 764021ff5f433cecdf2e\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport {default as React, PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createUIEvent, createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\n\nimport type {CoreEvent} from './utils/domFns';\nexport type CoreEventHandler = (e: Event, coreEvent: CoreEvent) => void | false;\nexport type DraggableState = {\n dragging: boolean,\n dragged: boolean,\n clientX: number, clientY: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.Number,\n right: PropTypes.Number,\n top: PropTypes.Number,\n bottom: PropTypes.Number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `start` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n start: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `zIndex` specifies the zIndex to use while dragging.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I have a zIndex
\n *
\n * );\n * }\n * });\n * ```\n */\n zIndex: PropTypes.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n start: {x: 0, y: 0},\n zIndex: NaN\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n clientX: this.props.start.x, clientY: this.props.start.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: CoreEventHandler = (e, coreEvent) => {\n log('Draggable: onDragStart: %j', coreEvent.position);\n\n // Short-circuit if user's callback killed it.\n let shouldStart = this.props.onStart(e, createUIEvent(this, coreEvent));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: CoreEventHandler = (e, coreEvent) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreEvent.position);\n\n let uiEvent = createUIEvent(this, coreEvent);\n\n let newState = {\n clientX: uiEvent.position.left,\n clientY: uiEvent.position.top\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n let {clientX, clientY} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.clientX += this.state.slackX;\n newState.clientY += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n [newState.clientX, newState.clientY] = getBoundPosition(this, newState.clientX, newState.clientY);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (clientX - newState.clientX);\n newState.slackY = this.state.slackY + (clientY - newState.clientY);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiEvent.position.left = clientX;\n uiEvent.position.top = clientY;\n uiEvent.deltaX = newState.clientX - this.state.clientX;\n uiEvent.deltaY = newState.clientY - this.state.clientY;\n }\n\n // Short-circuit if user's callback killed it.\n let shouldUpdate = this.props.onDrag(e, uiEvent);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: CoreEventHandler = (e, coreEvent) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n let shouldStop = this.props.onStop(e, createUIEvent(this, coreEvent));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreEvent.position);\n\n this.setState({\n dragging: false,\n slackX: 0,\n slackY: 0\n });\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) ?\n this.state.clientX :\n this.props.start.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) ?\n this.state.clientY :\n this.props.start.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n style = createCSSTransform(transformOpts);\n }\n\n // zIndex option\n if (this.state.dragging && !isNaN(this.props.zIndex)) {\n style.zIndex = this.props.zIndex;\n }\n\n // Mark with class while dragging\n let className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, isNum, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\nimport ReactDOM from 'react-dom';\n\nimport type Draggable from '../Draggable';\nimport type DraggableCore from '../DraggableCore';\n\nexport type CoreEvent = {\n node: HTMLElement,\n position: {\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n clientX: number, clientY: number\n }\n};\n\nexport type UIEvent = {\n node: HTMLElement,\n position: {\n left: number, top: number\n },\n deltaX: number, deltaY: number\n};\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: HTMLElement, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n let computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n let computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n let computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n let computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): {x: number, y: number} {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n let style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n let style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n// Create an event exposed by \nexport function createCoreEvent(draggable: DraggableCore, clientX: number, clientY: number): CoreEvent {\n // State changes are often (but not always!) async. We want the latest value.\n let state = draggable._pendingState || draggable.state;\n let isStart = !isNum(state.lastX);\n\n return {\n node: ReactDOM.findDOMNode(draggable),\n position: isStart ?\n // If this is our first move, use the clientX and clientY as last coords.\n {\n deltaX: 0, deltaY: 0,\n lastX: clientX, lastY: clientY,\n clientX: clientX, clientY: clientY\n } :\n // Otherwise calculate proper values.\n {\n deltaX: clientX - state.lastX, deltaY: clientY - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n clientX: clientX, clientY: clientY\n }\n };\n}\n\n// Create an event exposed by \nexport function createUIEvent(draggable: Draggable, coreEvent: CoreEvent): UIEvent {\n return {\n node: ReactDOM.findDOMNode(draggable),\n position: {\n left: draggable.state.clientX + coreEvent.position.deltaX,\n top: draggable.state.clientY + coreEvent.position.deltaY\n },\n deltaX: coreEvent.position.deltaX,\n deltaY: coreEvent.position.deltaY\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type DraggableCore from '../DraggableCore';\nexport type ControlPosition = {\n x: number, y: number\n};\nexport type Bounds = {\n left: number, top: number, right: number, bottom: number\n};\n\nexport function getBoundPosition(draggable: Draggable, clientX: number, clientY: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [clientX, clientY];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n let node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n let nodeStyle = window.getComputedStyle(node);\n let boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) clientX = Math.min(clientX, bounds.right);\n if (isNum(bounds.bottom)) clientY = Math.min(clientY, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) clientX = Math.max(clientX, bounds.left);\n if (isNum(bounds.top)) clientY = Math.max(clientY, bounds.top);\n\n return [clientX, clientY];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n let x = Math.round(pendingX / grid[0]) * grid[0];\n let y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n const node = ReactDOM.findDOMNode(draggableCore);\n return offsetXYFromParentOf(e, node);\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport {default as React, PropTypes} from 'react';\nimport {matchesSelector, createCoreEvent, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype EventHandler = (e: Event) => void;\ntype CoreState = {\n dragging: boolean,\n lastX: ?number,\n lastY: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I can't be dragged
\n *
\n * );\n * }\n * });\n * ```\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I snap to a 25 x 25 grid
\n *
\n * );\n * }\n * });\n * ```\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n *\n * Example:\n *\n * ```js\n * function (event, ui) {}\n * ```\n *\n * `event` is the Event that was triggered.\n * `ui` is an object:\n *\n * ```js\n * {\n * position: {top: 0, left: 0}\n * }\n * ```\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (due to that there's internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: null, lastY: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n let {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n let coreEvent = createCoreEvent(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent.position);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n let shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreEvent(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent.position);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop({});\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n let {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreEvent(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent.position);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: null,\n lastY: null\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap da61f1175b2a5258dc2a",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap da61f1175b2a5258dc2a\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: this.props.position ? this.props.position.x : this.props.defaultPosition.x,\n y: this.props.position ? this.props.position.y : this.props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n this.setState({\n dragging: false,\n slackX: 0,\n slackY: 0\n });\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n const controlled = Boolean(this.props.position);\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && !controlled ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && !controlled ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index dc3e1943..8bbf3057 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,clientX:_this.props.start.x,clientY:_this.props.start.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreEvent){(0,_log2["default"])("Draggable: onDragStart: %j",coreEvent.position);var shouldStart=_this.props.onStart(e,(0,_domFns.createUIEvent)(_this,coreEvent));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreEvent){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreEvent.position);var uiEvent=(0,_domFns.createUIEvent)(_this,coreEvent),newState={clientX:uiEvent.position.left,clientY:uiEvent.position.top};if(_this.props.bounds){var _clientX=newState.clientX,_clientY=newState.clientY;newState.clientX+=_this.state.slackX,newState.clientY+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.clientX,newState.clientY),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.clientX=_getBoundPosition2[0],newState.clientY=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_clientX-newState.clientX),newState.slackY=_this.state.slackY+(_clientY-newState.clientY),uiEvent.position.left=_clientX,uiEvent.position.top=_clientY,uiEvent.deltaX=newState.clientX-_this.state.clientX,uiEvent.deltaY=newState.clientY-_this.state.clientY}var shouldUpdate=_this.props.onDrag(e,uiEvent);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreEvent){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_domFns.createUIEvent)(_this,coreEvent));return shouldStop===!1?!1:((0,_log2["default"])("Draggable: onDragStop: %j",coreEvent.position),void _this.setState({dragging:!1,slackX:0,slackY:0}))},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentDidMount",value:function(){_reactDom2["default"].findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,transformOpts={x:(0,_positionFns.canDragX)(this)?this.state.clientX:this.props.start.x,y:(0,_positionFns.canDragY)(this)?this.state.clientY:this.props.start.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts),this.state.dragging&&!isNaN(this.props.zIndex)&&(style.zIndex=this.props.zIndex);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.Number,right:_react.PropTypes.Number,top:_react.PropTypes.Number,bottom:_react.PropTypes.Number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),start:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),zIndex:_react.PropTypes.number,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,start:{x:0,y:0},zIndex:NaN}),exports["default"]=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:null,lastY:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier}),_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)();var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_domFns.createCoreEvent)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent.position),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_domFns.createCoreEvent)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent.position);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop({}):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_domFns.createCoreEvent)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent.position),_this.setState({dragging:!1,lastX:null,lastY:null}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,x:_this.props.position?_this.props.position.x:_this.props.defaultPosition.x,y:_this.props.position?_this.props.position.y:_this.props.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreData){(0,_log2["default"])("Draggable: onDragStart: %j",coreData);var shouldStart=_this.props.onStart(e,(0,_positionFns.createDraggableData)(_this,coreData));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreData){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreData);var uiData=(0,_positionFns.createDraggableData)(_this,coreData),newState={x:uiData.x,y:uiData.y};if(_this.props.bounds){var _x=newState.x,_y=newState.y;newState.x+=_this.state.slackX,newState.y+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.x,newState.y),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.x=_getBoundPosition2[0],newState.y=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_x-newState.x),newState.slackY=_this.state.slackY+(_y-newState.y),uiData.x=_x,uiData.y=_y,uiData.deltaX=newState.x-_this.state.x,uiData.deltaY=newState.y-_this.state.y}var shouldUpdate=_this.props.onDrag(e,uiData);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreData){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_positionFns.createDraggableData)(_this,coreData));return shouldStop===!1?!1:((0,_log2["default"])("Draggable: onDragStop: %j",coreData),void _this.setState({dragging:!1,slackX:0,slackY:0}))},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentDidMount",value:function(){_reactDom2["default"].findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&!controlled?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&!controlled?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:NaN},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier}),_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)();var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 06b53a98..375a3ca4 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 764021ff5f433cecdf2e","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","clientX","_this","props","start","x","clientY","y","slackX","slackY","isElementSVG","onDragStart","e","coreEvent","_log2","position","shouldStart","onStart","createUIEvent","setState","onDrag","uiEvent","newState","left","top","bounds","_clientX","_clientY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","_temp","_possibleConstructorReturn","_ret","_reactDom2","findDOMNode","SVGElement","style","svgTransform","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","isNaN","zIndex","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","Number","right","bottom","string","number","dontSetMe","defaultProps","NaN","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","scrollLeft","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","createCoreEvent","draggable","_pendingState","isStart","isNum","lastX","lastY","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","num","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","eventsFor","touch","move","stop","mouse","dragEventFor","handleDragStart","onMouseDown","allowAnyClick","button","disabled","handle","target","cancel","touchIdentifier","identifier","enableUserSelectHack","_getControlPosition","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap da61f1175b2a5258dc2a","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","x","_this","props","position","defaultPosition","y","slackX","slackY","isElementSVG","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","onDrag","uiData","newState","bounds","_x","_y","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","_temp","_possibleConstructorReturn","_ret","_reactDom2","findDOMNode","SVGElement","nextProps","style","svgTransform","controlled","Boolean","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","draggable","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","enableUserSelectHack","_getControlPosition","coreEvent","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index e149789d..fcbfb78d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "1.4.0-beta1", + "version": "2.0.0-beta1", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From da38df4adbf8404c550b47e609ba23fac1fa5b2f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 14 Apr 2016 19:23:54 -0500 Subject: [PATCH 167/412] Update devDependencies --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index fcbfb78d..9c634720 100644 --- a/package.json +++ b/package.json @@ -29,24 +29,24 @@ "devDependencies": { "babel-cli": "^6.5.1", "babel-core": "^6.5.1", - "babel-eslint": "^4.1.8", + "babel-eslint": "^6.0.2", "babel-loader": "^6.2.2", "babel-preset-es2015": "^6.5.0", "babel-preset-react": "^6.5.0", "babel-preset-stage-1": "^6.5.0", - "eslint": "^1.7.3", - "eslint-plugin-react": "^3.6.3", + "eslint": "^2.7.0", + "eslint-plugin-react": "^4.3.0", "karma": "^0.13.14", "karma-chrome-launcher": "^0.2.1", - "karma-cli": "0.1.1", + "karma-cli": "0.1.2", "karma-firefox-launcher": "^0.1.6", "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", + "karma-phantomjs-launcher": "^1.0.0", "karma-phantomjs-shim": "^1.1.1", "karma-webpack": "^1.7.0", - "lodash": "^3.10.1", + "lodash": "^4.11.1", "open": "0.0.5", - "phantomjs": "^1.9.18", + "phantomjs-prebuilt": ">=1.9", "pre-commit": "^1.1.2", "react": "^15.0.0", "react-dom": "^15.0.0", From f7df5a4c5e4df73bbf32a5687363a7dd10cf8ca9 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 14 Apr 2016 19:24:10 -0500 Subject: [PATCH 168/412] Allow controlled components to be moved, but they revert to position onStop. --- example/index.html | 23 +++++++++++++++++++++-- lib/Draggable.es6 | 39 +++++++++++++++++++++++++++++++-------- 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/example/index.html b/example/index.html index 79c44ee4..2de857a7 100644 --- a/example/index.html +++ b/example/index.html @@ -106,6 +106,11 @@ this.setState({controlledPosition: {x, y: y - 10}}); }, + onControlledDrag: function(e, position) { + const {x, y} = position; + this.setState({controlledPosition: {x, y}}); + }, + onControlledDragStop: function(e, position) { const {x, y} = position; this.setState({controlledPosition: {x, y}}); @@ -188,9 +193,22 @@

React Draggable

{"I have a default position of {x: 25, y: 25}, so I'm slightly offset."}
- + +
+ My position can be changed programmatically.
+ I have a drag handler to sync state. +

+ Adjust x ({controlledPosition.x}) +

+

+ Adjust y ({controlledPosition.y}) +

+
+
+
- My position can be changed programmatically. + My position can be changed programmatically.
+ I have a dragStop handler to sync state.

Adjust x ({controlledPosition.x})

@@ -199,6 +217,7 @@

React Draggable

+
); } diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index 3e954415..137b09c0 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -163,6 +163,15 @@ export default class Draggable extends React.Component { isElementSVG: false }; + componentWillMount() { + if (this.props.position && !(this.props.onDrag || this.props.onStop)) { + // eslint-disable-next-line + console.warn('A `position` was applied to this , without drag handlers. This will make this ' + + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + + '`position` of this element.'); + } + } + componentDidMount() { // Check to see if the element passed is an instanceof SVGElement if(ReactDOM.findDOMNode(this) instanceof SVGElement) { @@ -250,30 +259,40 @@ export default class Draggable extends React.Component { log('Draggable: onDragStop: %j', coreData); - this.setState({ + const newState: $Shape = { dragging: false, slackX: 0, slackY: 0 - }); + }; + + // If this is a controlled component, the result of this operation will be to + // revert back to the old position. We expect a handler on `onDragStop`, at the least. + const controlled = Boolean(this.props.position); + if (controlled) { + const {x, y} = this.props.position; + newState.x = x; + newState.y = y; + } + + this.setState(newState); }; render(): React.Element { let style = {}, svgTransform = null; - // Add a CSS transform to move the element around. This allows us to move the element around - // without worrying about whether or not it is relatively or absolutely positioned. - // If the item you are dragging already has a transform set, wrap it in a so - // has a clean slate. + // If this is controlled, we don't want to move it - unless it's dragging. const controlled = Boolean(this.props.position); + const draggable = !controlled || this.state.dragging; + const position = this.props.position || this.props.defaultPosition; const transformOpts = { // Set left if horizontal drag is enabled - x: canDragX(this) && !controlled ? + x: canDragX(this) && draggable ? this.state.x : position.x, // Set top if vertical drag is enabled - y: canDragY(this) && !controlled ? + y: canDragY(this) && draggable ? this.state.y : position.y }; @@ -282,6 +301,10 @@ export default class Draggable extends React.Component { if (this.state.isElementSVG) { svgTransform = createSVGTransform(transformOpts); } else { + // Add a CSS transform to move the element around. This allows us to move the element around + // without worrying about whether or not it is relatively or absolutely positioned. + // If the item you are dragging already has a transform set, wrap it in a so + // has a clean slate. style = createCSSTransform(transformOpts); } From af5954395141b1c6c54aff3954e90411df0045e8 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 14 Apr 2016 19:33:05 -0500 Subject: [PATCH 169/412] README updates for new API & to be more clear about controlled vs uncontrolled --- README.md | 63 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 405b1d15..76345960 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,8 @@ repository and running `$ make`. This will create umd dist files in the `dist/` ### Exports -The default export is ``. At the `.DraggableCore` property is ``. Here's how to use it: +The default export is ``. At the `.DraggableCore` property is [``](#draggablecore). +Here's how to use it: ```js // ES6 @@ -37,7 +38,7 @@ let Draggable = require('react-draggable'); let DraggableCore = Draggable.DraggableCore; ``` -## Draggable +## `` A `` element wraps an existing element and extends it with new event handlers and styles. It does not create a wrapper element in the DOM. @@ -54,15 +55,15 @@ an intermediate wrapper (`...`) in this case The `` component transparently adds draggable to whatever element is supplied as `this.props.children`. **Note**: Only a single element is allowed or an Error will be thrown. -For the `` component to correctly attach itself to its child, the child element must provide support for the following props: +For the `` component to correctly attach itself to its child, the child element must provide support +for the following props: - `style` is used to give the transform css to the child. - `className` is used to apply the proper classes to the object being dragged. -- `onMouseDown` is used along with onMouseUp to keep track of dragging state. -- `onMouseUp` is used along with onMouseDown to keep track of dragging state. -- `onTouchStart` is used along with onTouchEnd to keep track of dragging state. -- `onTouchEnd` is used along with onTouchStart to keep track of dragging state. +- `onMouseDown`, `onMouseUp`, `onTouchStart`, and `onTouchEnd` are used to keep track of dragging state. -React.DOM elements support the above six properties by default, so you may use those elements as children without any changes. If you wish to use a React component you created, you might find [this React page](https://facebook.github.io/react/docs/transferring-props.html) helpful. +React.DOM elements support the above six properties by default, so you may use those elements as children without +any changes. If you wish to use a React component you created, you might find +[this React page](https://facebook.github.io/react/docs/transferring-props.html) helpful. Props: @@ -189,15 +190,36 @@ var App = React.createClass({ ReactDOM.render(, document.body); ``` -## +## Controlled vs. Uncontrolled -For users that require more control, a `` element is available. This is useful for more programmatic -usage of the element. See [React-Resizable](https://github.com/STRML/react-resizable) and -[React-Grid-Layout](https://github.com/STRML/react-grid-layout) for some examples of this. +`` is a 'batteries-included' component that manages its own state. If you want to completely +control the lifecycle of the component, use ``. + +For some users, they may want the nice state management that `` provides, but occasionally want +to programmatically reposition their components. `` allows this customization via a system that +is similar to how React handles form components. + +If the prop `position: {x: number, y: number}` is defined, the `` will ignore its internal state and use +the provided position instead. Altneratively, you can seed the position using `defaultPosition`. Technically, since +`` works only on position deltas, you could also seed the initial position using CSS `top/left`. + +We make one modification to the React philosophy here - we still allow dragging while a component is controlled. +We then expect you to use at least an `onDrag` or `onStop` handler to synchronize state. + +To disable dragging while controlled, send the prop `disabled={true}` - at this point the `` will operate +like a completely static component. + +## `` + +For users that require absolute control, a `` element is available. This is useful as an abstraction +over touch and mouse events, but with full control. `` has no internal state. + +See [React-Resizable](https://github.com/STRML/react-resizable) and +[React-Grid-Layout](https://github.com/STRML/react-grid-layout) for some usage examples. `` is a useful building block for other libraries that simply want to abstract browser-specific quirks and receive callbacks when a user attempts to move an element. It does not set styles or transforms -on itself. +on itself and thus must have callbacks attached to be useful. ### DraggableCore API @@ -222,20 +244,7 @@ Note that there is no start position. `` simply calls `drag` hand indicating its position (as inferred from the underlying MouseEvent) and deltas. It is up to the parent to set actual positions on ``. -Drag callbacks (`onDragStart`, `onDrag`, `onDragEnd`) are called with the following parameters: - -```js -( - event: Event, - data: { - node: HTMLElement, - // lastX + deltaX === x - x: number, y: number, - deltaX: number, deltaY: number, - lastX: number, lastY: number - } -) -``` +Drag callbacks (`onStart`, `onDrag`, `onStop`) are called with the [same arguments as ``](#draggable-api). ---- From cb7d899381ccf548c78ae83ee0a6fd13370a42c7 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 14 Apr 2016 19:35:44 -0500 Subject: [PATCH 170/412] release v2.0.0-beta2 --- CHANGELOG.md | 8 +++++++ bower.json | 2 +- dist/react-draggable.js | 41 ++++++++++++++++++++++++++------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 46 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f08ea499..77d495e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### 2.0.0-beta2 (Apr 14, 2016) + +- We're making a small deviation from React Core's controlled vs. uncontrolled scheme; for convenience, + ``s with a `position` property will still be draggable, but will revert to their old position + on drag stop. Attach an `onStop` or `onDrag` handler to synchronize state. + - A warning has been added informing users of this. If you make `` controlled but no callback + handlers, a warning will be printed. + ### 2.0.0-beta1 (Apr 14, 2016) - Due to API changes, this is a major release. diff --git a/bower.json b/bower.json index 560c07cb..0c1d42bb 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.0-beta1", + "version": "2.0.0-beta2", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index b2b40710..fbb9657e 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -214,15 +214,37 @@ return /******/ (function(modules) { // webpackBootstrap (0, _log2.default)('Draggable: onDragStop: %j', coreData); - _this.setState({ + var newState = { dragging: false, slackX: 0, slackY: 0 - }); + }; + + // If this is a controlled component, the result of this operation will be to + // revert back to the old position. We expect a handler on `onDragStop`, at the least. + var controlled = Boolean(_this.props.position); + if (controlled) { + var _this$props$position = _this.props.position; + var _x2 = _this$props$position.x; + var _y2 = _this$props$position.y; + + newState.x = _x2; + newState.y = _y2; + } + + _this.setState(newState); }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(Draggable, [{ + key: 'componentWillMount', + value: function componentWillMount() { + if (this.props.position && !(this.props.onDrag || this.props.onStop)) { + // eslint-disable-next-line + console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); + } + } + }, { key: 'componentDidMount', value: function componentDidMount() { // Check to see if the element passed is an instanceof SVGElement @@ -249,24 +271,27 @@ return /******/ (function(modules) { // webpackBootstrap var style = {}, svgTransform = null; - // Add a CSS transform to move the element around. This allows us to move the element around - // without worrying about whether or not it is relatively or absolutely positioned. - // If the item you are dragging already has a transform set, wrap it in a so - // has a clean slate. + // If this is controlled, we don't want to move it - unless it's dragging. var controlled = Boolean(this.props.position); + var draggable = !controlled || this.state.dragging; + var position = this.props.position || this.props.defaultPosition; var transformOpts = { // Set left if horizontal drag is enabled - x: (0, _positionFns.canDragX)(this) && !controlled ? this.state.x : position.x, + x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : position.x, // Set top if vertical drag is enabled - y: (0, _positionFns.canDragY)(this) && !controlled ? this.state.y : position.y + y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : position.y }; // If this element was SVG, we use the `transform` attribute. if (this.state.isElementSVG) { svgTransform = (0, _domFns.createSVGTransform)(transformOpts); } else { + // Add a CSS transform to move the element around. This allows us to move the element around + // without worrying about whether or not it is relatively or absolutely positioned. + // If the item you are dragging already has a transform set, wrap it in a so + // has a clean slate. style = (0, _domFns.createCSSTransform)(transformOpts); } diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 5305e5f0..17dead97 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap da61f1175b2a5258dc2a",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap da61f1175b2a5258dc2a\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: this.props.position ? this.props.position.x : this.props.defaultPosition.x,\n y: this.props.position ? this.props.position.y : this.props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n this.setState({\n dragging: false,\n slackX: 0,\n slackY: 0\n });\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n const controlled = Boolean(this.props.position);\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && !controlled ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && !controlled ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 45868ded4cb7860818c0",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACtCA,QAAO,OAAP,GAAiB,oBAAQ,CAAR,EAA2B,OAA3B;AACjB,QAAO,OAAP,CAAe,aAAf,GAA+B,oBAAQ,CAAR,EAA+B,OAA/B,C;;;;;;;;;;;;;;;;;;ACA/B;;;;AACA;;;;AAEA;;;;AACA;;AACA;;AACA;;AACA;;;;AACA;;;;;;;;;;;;;;;;;;KAeqB;;;;;;;;;;;;;;wMA2HnB,QAAwB;;AAEtB,iBAAU,KAAV;;;AAGA,gBAAS,KAAT;;;AAGA,UAAG,MAAK,KAAL,CAAW,QAAX,GAAsB,MAAK,KAAL,CAAW,QAAX,CAAoB,CAApB,GAAwB,MAAK,KAAL,CAAW,eAAX,CAA2B,CAA3B;AACjD,UAAG,MAAK,KAAL,CAAW,QAAX,GAAsB,MAAK,KAAL,CAAW,QAAX,CAAoB,CAApB,GAAwB,MAAK,KAAL,CAAW,eAAX,CAA2B,CAA3B;;;AAGjD,eAAQ,CAAR,EAAW,QAAQ,CAAR;;;AAGX,qBAAc,KAAd;cAmCF,cAAqC,UAAC,CAAD,EAAI,QAAJ,EAAiB;AACpD,0BAAI,4BAAJ,EAAkC,QAAlC;;;AADoD,WAI9C,cAAc,MAAK,KAAL,CAAW,OAAX,CAAmB,CAAnB,EAAsB,6CAA0B,QAA1B,CAAtB,CAAd;;AAJ8C,WAMhD,gBAAgB,KAAhB,EAAuB,OAAO,KAAP,CAA3B;;AAEA,aAAK,QAAL,CAAc,EAAC,UAAU,IAAV,EAAgB,SAAS,IAAT,EAA/B,EARoD;MAAjB,QAWrC,SAAgC,UAAC,CAAD,EAAI,QAAJ,EAAiB;AAC/C,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAAO,KAAP,CAA1B;AACA,0BAAI,uBAAJ,EAA6B,QAA7B,EAF+C;;AAI/C,WAAM,SAAS,6CAA0B,QAA1B,CAAT,CAJyC;;AAM/C,WAAM,WAAmC;AACvC,YAAG,OAAO,CAAP;AACH,YAAG,OAAO,CAAP;QAFC;;;AANyC,WAY3C,MAAK,KAAL,CAAW,MAAX,EAAmB;;aAEd,KAAQ,SAAR,EAFc;aAEX,KAAK,SAAL;;;;;AAFW;AAOrB,kBAAS,CAAT,IAAc,MAAK,KAAL,CAAW,MAAX,CAPO;AAQrB,kBAAS,CAAT,IAAc,MAAK,KAAL,CAAW,MAAX;;;;AARO;;;;iCAYM,0CAAuB,SAAS,CAAT,EAAY,SAAS,CAAT,EAZzC;;;;AAYpB,kBAAS,CAAT,yBAZoB;AAYR,kBAAS,CAAT,yBAZQ;AAerB,kBAAS,MAAT,GAAkB,MAAK,KAAL,CAAW,MAAX,IAAqB,KAAI,SAAS,CAAT,CAAzB,CAfG;AAgBrB,kBAAS,MAAT,GAAkB,MAAK,KAAL,CAAW,MAAX,IAAqB,KAAI,SAAS,CAAT,CAAzB;;;AAhBG,eAmBrB,CAAO,CAAP,GAAW,EAAX,CAnBqB;AAoBrB,gBAAO,CAAP,GAAW,EAAX,CApBqB;AAqBrB,gBAAO,MAAP,GAAgB,SAAS,CAAT,GAAa,MAAK,KAAL,CAAW,CAAX,CArBR;AAsBrB,gBAAO,MAAP,GAAgB,SAAS,CAAT,GAAa,MAAK,KAAL,CAAW,CAAX,CAtBR;QAAvB;;;AAZ+C,WAsCzC,eAAe,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,MAArB,CAAf,CAtCyC;AAuC/C,WAAI,iBAAiB,KAAjB,EAAwB,OAAO,KAAP,CAA5B;;AAEA,aAAK,QAAL,CAAc,QAAd,EAzC+C;MAAjB,QA4ChC,aAAoC,UAAC,CAAD,EAAI,QAAJ,EAAiB;AACnD,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAAO,KAAP,CAA1B;;;AADmD,WAI7C,aAAa,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,6CAA0B,QAA1B,CAArB,CAAb,CAJ6C;AAKnD,WAAI,eAAe,KAAf,EAAsB,OAAO,KAAP,CAA1B;;AAEA,0BAAI,2BAAJ,EAAiC,QAAjC,EAPmD;;AASnD,WAAM,WAAmC;AACvC,mBAAU,KAAV;AACA,iBAAQ,CAAR;AACA,iBAAQ,CAAR;QAHI;;;;AAT6C,WAiB7C,aAAa,QAAQ,MAAK,KAAL,CAAW,QAAX,CAArB,CAjB6C;AAkBnD,WAAI,UAAJ,EAAgB;oCACC,MAAK,KAAL,CAAW,QAAX,CADD;aACP,6BADO;aACJ,6BADI;;AAEd,kBAAS,CAAT,GAAa,GAAb,CAFc;AAGd,kBAAS,CAAT,GAAa,GAAb,CAHc;QAAhB;;AAMA,aAAK,QAAL,CAAc,QAAd,EAxBmD;MAAjB;;;gBApOjB;;0CA6IE;AACnB,WAAI,KAAK,KAAL,CAAW,QAAX,IAAuB,EAAE,KAAK,KAAL,CAAW,MAAX,IAAqB,KAAK,KAAL,CAAW,MAAX,CAAvB,EAA2C;;AAEpE,iBAAQ,IAAR,CAAa,8FACX,uGADW,GAEX,6BAFW,CAAb,CAFoE;QAAtE;;;;yCAQkB;;AAElB,WAAG,mBAAS,WAAT,CAAqB,IAArB,aAAsC,UAAtC,EAAkD;AACnD,cAAK,QAAL,CAAc,EAAE,cAAc,IAAd,EAAhB,EADmD;QAArD;;;;+CAKwB,WAAmB;;AAE3C,WAAI,UAAU,QAAV,KACC,CAAC,KAAK,KAAL,CAAW,QAAX,IACA,UAAU,QAAV,CAAmB,CAAnB,KAAyB,KAAK,KAAL,CAAW,QAAX,CAAoB,CAApB,IACzB,UAAU,QAAV,CAAmB,CAAnB,KAAyB,KAAK,KAAL,CAAW,QAAX,CAAoB,CAApB,CAH3B,EAKA;AACF,cAAK,QAAL,CAAc,EAAE,GAAG,UAAU,QAAV,CAAmB,CAAnB,EAAsB,GAAG,UAAU,QAAV,CAAmB,CAAnB,EAA5C,EADE;QALJ;;;;4CAUqB;AACrB,YAAK,QAAL,CAAc,EAAC,UAAU,KAAV,EAAf;AADqB;;;8BAsFC;AACtB,WAAI,QAAQ,EAAR;WAAY,eAAe,IAAf;;;AADM,WAIhB,aAAa,QAAQ,KAAK,KAAL,CAAW,QAAX,CAArB,CAJgB;AAKtB,WAAM,YAAY,CAAC,UAAD,IAAe,KAAK,KAAL,CAAW,QAAX,CALX;;AAOtB,WAAM,WAAW,KAAK,KAAL,CAAW,QAAX,IAAuB,KAAK,KAAL,CAAW,eAAX,CAPlB;AAQtB,WAAM,gBAAgB;;AAEpB,YAAG,2BAAS,IAAT,KAAkB,SAAlB,GACD,KAAK,KAAL,CAAW,CAAX,GACA,SAAS,CAAT;;;AAGF,YAAG,2BAAS,IAAT,KAAkB,SAAlB,GACD,KAAK,KAAL,CAAW,CAAX,GACA,SAAS,CAAT;QATE;;;AARgB,WAqBlB,KAAK,KAAL,CAAW,YAAX,EAAyB;AAC3B,wBAAe,gCAAmB,aAAnB,CAAf,CAD2B;QAA7B,MAEO;;;;;AAKL,iBAAQ,gCAAmB,aAAnB,CAAR,CALK;QAFP;;;AArBsB,WAgChB,YAAY,0BAAY,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,SAA1B,IAAuC,EAAvC,EAA4C,iBAAxD,EAA2E;AAC3F,qCAA4B,KAAK,KAAL,CAAW,QAAX;AAC5B,oCAA2B,KAAK,KAAL,CAAW,OAAX;QAFX,CAAZ;;;;AAhCgB,cAwCpB;;sBAAmB,KAAK,KAAL,IAAY,SAAS,KAAK,WAAL,EAAkB,QAAQ,KAAK,MAAL,EAAa,QAAQ,KAAK,UAAL,GAAvF;SACG,gBAAM,YAAN,CAAmB,gBAAM,QAAN,CAAe,IAAf,CAAoB,KAAK,KAAL,CAAW,QAAX,CAAvC,EAA6D;AAC5D,sBAAW,SAAX;AACA,+BAAW,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,KAA1B,EAAoC,MAA/C;AACA,sBAAW,YAAX;UAHD,CADH;QADF,CAvCsB;;;;UA/PL;GAAkB,gBAAM,SAAN;;AAAlB,WAEZ,cAAc;AAFF,WAIZ,yBAEF,wBAAc,SAAd;;;;;;;;;;;;;;;AAeH,SAAM,iBAAU,KAAV,CAAgB,CAAC,MAAD,EAAS,GAAT,EAAc,GAAd,EAAmB,MAAnB,CAAhB,CAAN;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,WAAQ,iBAAU,SAAV,CAAoB,CAC1B,iBAAU,KAAV,CAAgB;AACd,WAAM,iBAAU,MAAV;AACN,YAAO,iBAAU,MAAV;AACP,UAAK,iBAAU,MAAV;AACL,aAAQ,iBAAU,MAAV;IAJV,CAD0B,EAO1B,iBAAU,MAAV,EACA,iBAAU,KAAV,CAAgB,CAAC,KAAD,CAAhB,CAR0B,CAApB,CAAR;;;;;;;;;;;;;;;;;;;AA4BA,oBAAiB,iBAAU,KAAV,CAAgB;AAC/B,QAAG,iBAAU,MAAV;AACH,QAAG,iBAAU,MAAV;IAFY,CAAjB;;;;;;;;;;;;;;;;;;;;;;AAyBA,aAAU,iBAAU,KAAV,CAAgB;AACxB,QAAG,iBAAU,MAAV;AACH,QAAG,iBAAU,MAAV;IAFK,CAAV;;;;;AAQA;AACA;AACA;;AAhHiB,WAmHZ,4BACF,wBAAc,YAAd;AACH,SAAM,MAAN;AACA,WAAQ,KAAR;AACA,oBAAiB,EAAC,GAAG,CAAH,EAAM,GAAG,CAAH,EAAxB;AACA,aAAU,IAAV;;mBAxHiB,U;;;;;;ACxBrB,gD;;;;;;ACAA,gD;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAgB;;AAEhB;AACA;;AAEA,kBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,EAAC;;;;;;;;;;;;;;;SCxCe;SAkBA;SAYA;SAYA;SAUA;SASA;SAQA;SASA;SAYA;SAKA;SAWA;SAKA;SAKA;;AA1HhB;;AACA;;;;;;;;AAIA,KAAI,sBAAsB,EAAtB;AACG,UAAS,eAAT,CAAyB,EAAzB,EAAmC,QAAnC,EAA8D;AACnE,OAAI,CAAC,mBAAD,EAAsB;AACxB,2BAAsB,wBAAY,CAChC,SADgC,EAEhC,uBAFgC,EAGhC,oBAHgC,EAIhC,mBAJgC,EAKhC,kBALgC,CAAZ,EAMnB,UAAS,MAAT,EAAgB;;AAEjB,cAAO,uBAAW,GAAG,MAAH,CAAX,CAAP,CAFiB;MAAhB,CANH,CADwB;IAA1B;;;AADmE,UAe5D,GAAG,mBAAH,EAAwB,IAAxB,CAA6B,EAA7B,EAAiC,QAAjC,CAAP,CAfmE;EAA9D;;AAkBA,UAAS,QAAT,CAAkB,EAAlB,EAA6B,KAA7B,EAA4C,OAA5C,EAAqE;AAC1E,OAAI,CAAC,EAAD,EAAK;AAAE,YAAF;IAAT;AACA,OAAI,GAAG,WAAH,EAAgB;AAClB,QAAG,WAAH,CAAe,OAAO,KAAP,EAAc,OAA7B,EADkB;IAApB,MAEO,IAAI,GAAG,gBAAH,EAAqB;AAC9B,QAAG,gBAAH,CAAoB,KAApB,EAA2B,OAA3B,EAAoC,IAApC,EAD8B;IAAzB,MAEA;;AAEL,QAAG,OAAO,KAAP,CAAH,GAAmB,OAAnB,CAFK;IAFA;EAJF;;AAYA,UAAS,WAAT,CAAqB,EAArB,EAAgC,KAAhC,EAA+C,OAA/C,EAAwE;AAC7E,OAAI,CAAC,EAAD,EAAK;AAAE,YAAF;IAAT;AACA,OAAI,GAAG,WAAH,EAAgB;AAClB,QAAG,WAAH,CAAe,OAAO,KAAP,EAAc,OAA7B,EADkB;IAApB,MAEO,IAAI,GAAG,mBAAH,EAAwB;AACjC,QAAG,mBAAH,CAAuB,KAAvB,EAA8B,OAA9B,EAAuC,IAAvC,EADiC;IAA5B,MAEA;;AAEL,QAAG,OAAO,KAAP,CAAH,GAAmB,IAAnB,CAFK;IAFA;EAJF;;AAYA,UAAS,WAAT,CAAqB,IAArB,EAAgD;;;AAGrD,OAAI,SAAS,KAAK,YAAL,CAHwC;AAIrD,OAAM,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAJ+C;AAKrD,aAAU,gBAAI,cAAc,cAAd,CAAd,CALqD;AAMrD,aAAU,gBAAI,cAAc,iBAAd,CAAd,CANqD;AAOrD,UAAO,MAAP,CAPqD;EAAhD;;AAUA,UAAS,UAAT,CAAoB,IAApB,EAA+C;;;AAGpD,OAAI,QAAQ,KAAK,WAAL,CAHwC;AAIpD,OAAM,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAJ8C;AAKpD,YAAS,gBAAI,cAAc,eAAd,CAAb,CALoD;AAMpD,YAAS,gBAAI,cAAc,gBAAd,CAAb,CANoD;AAOpD,UAAO,KAAP,CAPoD;EAA/C;AASA,UAAS,WAAT,CAAqB,IAArB,EAAgD;AACrD,OAAI,SAAS,KAAK,YAAL,CADwC;AAErD,OAAM,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAF+C;AAGrD,aAAU,gBAAI,cAAc,UAAd,CAAd,CAHqD;AAIrD,aAAU,gBAAI,cAAc,aAAd,CAAd,CAJqD;AAKrD,UAAO,MAAP,CALqD;EAAhD;;AAQA,UAAS,UAAT,CAAoB,IAApB,EAA+C;AACpD,OAAI,QAAQ,KAAK,WAAL,CADwC;AAEpD,OAAM,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAF8C;AAGpD,YAAS,gBAAI,cAAc,WAAd,CAAb,CAHoD;AAIpD,YAAS,gBAAI,cAAc,YAAd,CAAb,CAJoD;AAKpD,UAAO,KAAP,CALoD;EAA/C;;;AASA,UAAS,oBAAT,CAA8B,CAA9B,EAA6C,IAA7C,EAA+G;AACpH,OAAM,MAAM,EAAE,aAAF,GAAkB,EAAE,aAAF,CAAgB,CAAhB,CAAlB,GAAuC,CAAvC,CADwG;;AAGpH,OAAM,eAAe,KAAK,YAAL,IAAqB,SAAS,IAAT,CAH0E;AAIpH,OAAM,mBAAmB,KAAK,YAAL,KAAsB,SAAS,IAAT,GAAgB,EAAC,MAAM,CAAN,EAAS,KAAK,CAAL,EAAhD,GAA0D,aAAa,qBAAb,EAA1D,CAJ2F;;AAMpH,OAAM,IAAI,IAAI,OAAJ,GAAc,aAAa,UAAb,GAA0B,iBAAiB,IAAjB,CANkE;AAOpH,OAAM,IAAI,IAAI,OAAJ,GAAc,aAAa,SAAb,GAAyB,iBAAiB,GAAjB,CAPmE;;AASpH,UAAO,EAAC,IAAD,EAAI,IAAJ,EAAP,CAToH;EAA/G;;AAYA,UAAS,kBAAT,OAAoE;OAAvC,WAAuC;OAApC,WAAoC;;;AAEzE,8BAAS,mCAAmB,WAAnB,wBAAiD,eAAe,CAAf,GAAmB,KAAnB,GAA2B,CAA3B,GAA+B,KAA/B,CAA1D,CAFyE;EAApE;;AAKA,UAAS,kBAAT,QAAoE;OAAvC,YAAuC;OAApC,YAAoC;;AACzE,UAAO,eAAe,CAAf,GAAmB,GAAnB,GAAyB,CAAzB,GAA6B,GAA7B,CADkE;EAApE;;;;;AAOP,KAAM,mBAAmB,0BAAU,aAAV,CAAnB;AACN,KAAM,aAAa,qCAAqB,aAArB,EAAoC,gBAApC,CAAb;AACN,KAAM,wBAAsB,sBAAtB;;AAEC,UAAS,mBAAT,GAA+B;AACpC,OAAM,QAAQ,SAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,KAAuC,EAAvC,CADsB;AAEpC,YAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,EAAoC,QAAQ,eAAR,CAApC,CAFoC;EAA/B;;AAKA,UAAS,sBAAT,GAAkC;AACvC,OAAM,QAAQ,SAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,KAAuC,EAAvC,CADyB;AAEvC,YAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,EAAoC,MAAM,OAAN,CAAc,eAAd,EAA+B,EAA/B,CAApC,EAFuC;EAAlC;;AAKA,UAAS,UAAT,GAAqD;OAAjC,mEAAqB,kBAAY;;;;AAG1D;AACE,kBAAa,MAAb;MACG,WAFL,CAH0D;;;;;;;;;;;;SCzH5C;SAMA;SAIA;SAIA;SAIA;;;AAlBT,UAAS,WAAT,CAAqB,KAArB,EAAwC,QAAxC,EAAiE;AACtE,QAAK,IAAI,IAAI,CAAJ,EAAO,SAAS,MAAM,MAAN,EAAc,IAAI,MAAJ,EAAY,GAAnD,EAAwD;AACtD,SAAI,SAAS,KAAT,CAAe,QAAf,EAAyB,CAAC,MAAM,CAAN,CAAD,EAAW,CAAX,EAAc,KAAd,CAAzB,CAAJ,EAAoD,OAAO,MAAM,CAAN,CAAP,CAApD;IADF;EADK;;AAMA,UAAS,UAAT,CAAoB,IAApB,EAAwC;AAC7C,UAAO,OAAO,IAAP,KAAgB,UAAhB,IAA8B,OAAO,SAAP,CAAiB,QAAjB,CAA0B,IAA1B,CAA+B,IAA/B,MAAyC,mBAAzC,CADQ;EAAxC;;AAIA,UAAS,KAAT,CAAe,GAAf,EAAkC;AACvC,UAAO,OAAO,GAAP,KAAe,QAAf,IAA2B,CAAC,MAAM,GAAN,CAAD,CADK;EAAlC;;AAIA,UAAS,GAAT,CAAa,CAAb,EAAgC;AACrC,UAAO,SAAS,CAAT,EAAY,EAAZ,CAAP,CADqC;EAAhC;;AAIA,UAAS,SAAT,CAAmB,KAAnB,EAAkC,QAAlC,EAAoD,aAApD,EAA2E;AAChF,OAAI,MAAM,QAAN,CAAJ,EAAqB;AACnB,YAAO,IAAI,KAAJ,mBAA0B,2BAAsB,0DAAhD,CAAP,CADmB;IAArB;;;;;;;;;;;;SCnBc;SAiBA;SAIA;;AAtBhB,KAAM,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAX;AACC,UAAS,SAAT,GAAqD;OAAlC,6DAAa,2BAAqB;;;;;AAI1D,OAAI,OAAO,MAAP,KAAkB,WAAlB,IAAiC,OAAO,OAAO,QAAP,KAAoB,WAA3B,EAAwC,OAAO,EAAP,CAA7E;;AAEA,OAAM,QAAQ,OAAO,QAAP,CAAgB,eAAhB,CAAgC,KAAhC,CAN4C;;AAQ1D,OAAI,QAAQ,KAAR,EAAe,OAAO,EAAP,CAAnB;;AAEA,QAAK,IAAI,IAAI,CAAJ,EAAO,IAAI,SAAS,MAAT,EAAiB,GAArC,EAA0C;AACxC,SAAI,mBAAmB,IAAnB,EAAyB,SAAS,CAAT,CAAzB,KAAyC,KAAzC,EAAgD,OAAO,SAAS,CAAT,CAAP,CAApD;IADF;;AAIA,UAAO,EAAP,CAd0D;EAArD;;AAiBA,UAAS,kBAAT,CAA4B,IAA5B,EAA0C,MAA1C,EAAkE;AACvE,UAAO,cAAY,SAAS,iBAAiB,IAAjB,CAArB,GAAgD,IAAhD,CADgE;EAAlE;;AAIA,UAAS,oBAAT,CAA8B,IAA9B,EAA4C,MAA5C,EAAoE;AACzE,UAAO,eAAa,OAAO,WAAP,WAAwB,IAArC,GAA8C,IAA9C,CADkE;EAApE;;AAIP,UAAS,gBAAT,CAA0B,GAA1B,EAA+C;AAC7C,OAAI,MAAM,EAAN,CADyC;AAE7C,OAAI,mBAAmB,IAAnB,CAFyC;AAG7C,QAAK,IAAI,IAAI,CAAJ,EAAO,IAAI,IAAI,MAAJ,EAAY,GAAhC,EAAqC;AACnC,SAAI,gBAAJ,EAAsB;AACpB,cAAO,IAAI,CAAJ,EAAO,WAAP,EAAP,CADoB;AAEpB,0BAAmB,KAAnB,CAFoB;MAAtB,MAGO,IAAI,IAAI,CAAJ,MAAW,GAAX,EAAgB;AACzB,0BAAmB,IAAnB,CADyB;MAApB,MAEA;AACL,cAAO,IAAI,CAAJ,CAAP,CADK;MAFA;IAJT;AAUA,UAAO,GAAP,CAb6C;EAA/C;;;;;mBAmBe,Y;;;;;;;;;;;SCrCC;SAyCA;SAMA;SAIA;SAKA;SAKA;SAyBA;;AA9FhB;;AACA;;;;AACA;;;;AAMO,UAAS,gBAAT,CAA0B,SAA1B,EAAgD,CAAhD,EAA2D,CAA3D,EAAwF;;AAE7F,OAAI,CAAC,UAAU,KAAV,CAAgB,MAAhB,EAAwB,OAAO,CAAC,CAAD,EAAI,CAAJ,CAAP,CAA7B;;;AAF6F,OAKxF,SAAU,UAAU,KAAV,CAAV,OALwF;;AAM7F,YAAS,OAAO,MAAP,KAAkB,QAAlB,GAA6B,MAA7B,GAAsC,YAAY,MAAZ,CAAtC,CANoF;AAO7F,OAAM,OAAO,mBAAS,WAAT,CAAqB,SAArB,CAAP,CAPuF;;AAS7F,OAAI,OAAO,MAAP,KAAkB,QAAlB,EAA4B;AAC9B,SAAI,kBAAJ,CAD8B;AAE9B,SAAI,WAAW,QAAX,EAAqB;AACvB,mBAAY,KAAK,UAAL,CADW;MAAzB,MAEO;AACL,mBAAY,SAAS,aAAT,CAAuB,MAAvB,CAAZ,CADK;AAEL,WAAI,CAAC,SAAD,EAAY,MAAM,IAAI,KAAJ,CAAU,sBAAsB,MAAtB,GAA+B,8BAA/B,CAAhB,CAAhB;MAJF;AAMA,SAAM,YAAY,OAAO,gBAAP,CAAwB,IAAxB,CAAZ,CARwB;AAS9B,SAAM,iBAAiB,OAAO,gBAAP,CAAwB,SAAxB,CAAjB;;AATwB,WAW9B,GAAS;AACP,aAAM,CAAC,KAAK,UAAL,GAAkB,gBAAI,eAAe,WAAf,CAAvB,GACA,gBAAI,UAAU,eAAV,CADJ,GACiC,gBAAI,UAAU,UAAV,CADrC;AAEN,YAAK,CAAC,KAAK,SAAL,GAAiB,gBAAI,eAAe,UAAf,CAAtB,GACC,gBAAI,UAAU,cAAV,CADL,GACiC,gBAAI,UAAU,SAAV,CADrC;AAEL,cAAO,wBAAW,SAAX,IAAwB,wBAAW,IAAX,CAAxB,GAA2C,KAAK,UAAL;AAClD,eAAQ,yBAAY,SAAZ,IAAyB,yBAAY,IAAZ,CAAzB,GAA6C,KAAK,SAAL;MANvD,CAX8B;IAAhC;;;AAT6F,OA+BzF,kBAAM,OAAO,KAAP,CAAV,EAAyB,IAAI,KAAK,GAAL,CAAS,CAAT,EAAY,OAAO,KAAP,CAAhB,CAAzB;AACA,OAAI,kBAAM,OAAO,MAAP,CAAV,EAA0B,IAAI,KAAK,GAAL,CAAS,CAAT,EAAY,OAAO,MAAP,CAAhB,CAA1B;;;AAhC6F,OAmCzF,kBAAM,OAAO,IAAP,CAAV,EAAwB,IAAI,KAAK,GAAL,CAAS,CAAT,EAAY,OAAO,IAAP,CAAhB,CAAxB;AACA,OAAI,kBAAM,OAAO,GAAP,CAAV,EAAuB,IAAI,KAAK,GAAL,CAAS,CAAT,EAAY,OAAO,GAAP,CAAhB,CAAvB;;AAEA,UAAO,CAAC,CAAD,EAAI,CAAJ,CAAP,CAtC6F;EAAxF;;AAyCA,UAAS,UAAT,CAAoB,IAApB,EAA4C,QAA5C,EAA8D,QAA9D,EAAkG;AACvG,OAAM,IAAI,KAAK,KAAL,CAAW,WAAW,KAAK,CAAL,CAAX,CAAX,GAAiC,KAAK,CAAL,CAAjC,CAD6F;AAEvG,OAAM,IAAI,KAAK,KAAL,CAAW,WAAW,KAAK,CAAL,CAAX,CAAX,GAAiC,KAAK,CAAL,CAAjC,CAF6F;AAGvG,UAAO,CAAC,CAAD,EAAI,CAAJ,CAAP,CAHuG;EAAlG;;AAMA,UAAS,QAAT,CAAkB,SAAlB,EAAiD;AACtD,UAAO,UAAU,KAAV,CAAgB,IAAhB,KAAyB,MAAzB,IAAmC,UAAU,KAAV,CAAgB,IAAhB,KAAyB,GAAzB,CADY;EAAjD;;AAIA,UAAS,QAAT,CAAkB,SAAlB,EAAiD;AACtD,UAAO,UAAU,KAAV,CAAgB,IAAhB,KAAyB,MAAzB,IAAmC,UAAU,KAAV,CAAgB,IAAhB,KAAyB,GAAzB,CADY;EAAjD;;;AAKA,UAAS,kBAAT,CAA4B,CAA5B,EAA2C,aAA3C,EAA0F;AAC/F,UAAO,kCAAqB,CAArB,EAAwB,mBAAS,WAAT,CAAqB,aAArB,CAAxB,CAAP,CAD+F;EAA1F;;;AAKA,UAAS,cAAT,CAAwB,SAAxB,EAAkD,CAAlD,EAA6D,CAA7D,EAAuF;;AAE5F,OAAM,QAAQ,UAAU,aAAV,IAA2B,UAAU,KAAV,CAFmD;AAG5F,OAAM,UAAU,CAAC,kBAAM,MAAM,KAAN,CAAP,CAH4E;;AAK5F,OAAI,OAAJ,EAAa;;AAEX,YAAO;AACL,aAAM,mBAAS,WAAT,CAAqB,IAArB,CAAN;AACA,eAAQ,CAAR,EAAW,QAAQ,CAAR;AACX,cAAO,CAAP,EAAU,OAAO,CAAP;AACV,UAAG,CAAH,EAAM,GAAG,CAAH;MAJR,CAFW;IAAb,MAQO;;AAEL,YAAO;AACL,aAAM,mBAAS,WAAT,CAAqB,IAArB,CAAN;AACA,eAAQ,IAAI,MAAM,KAAN,EAAa,QAAQ,IAAI,MAAM,KAAN;AACrC,cAAO,MAAM,KAAN,EAAa,OAAO,MAAM,KAAN;AAC3B,UAAG,CAAH,EAAM,GAAG,CAAH;MAJR,CAFK;IARP;EALK;;;AAyBA,UAAS,mBAAT,CAA6B,SAA7B,EAAmD,QAAnD,EAA2F;AAChG,UAAO;AACL,WAAM,SAAS,IAAT;AACN,QAAG,UAAU,KAAV,CAAgB,CAAhB,GAAoB,SAAS,MAAT;AACvB,QAAG,UAAU,KAAV,CAAgB,CAAhB,GAAoB,SAAS,MAAT;AACvB,aAAQ,SAAS,MAAT;AACR,aAAQ,SAAS,MAAT;AACR,YAAO,UAAU,KAAV,CAAgB,CAAhB;AACP,YAAO,UAAU,KAAV,CAAgB,CAAhB;IAPT,CADgG;EAA3F;;;AAaP,UAAS,WAAT,CAAqB,MAArB,EAA6C;AAC3C,UAAO;AACL,WAAM,OAAO,IAAP;AACN,UAAK,OAAO,GAAP;AACL,YAAO,OAAO,KAAP;AACP,aAAQ,OAAO,MAAP;IAJV,CAD2C;;;;;;;;;;;;;;;;;AC3G7C;;;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;AAKA,KAAM,YAAY;AAChB,UAAO;AACL,YAAO,YAAP;AACA,WAAM,WAAN;AACA,WAAM,UAAN;IAHF;AAKA,UAAO;AACL,YAAO,WAAP;AACA,WAAM,WAAN;AACA,WAAM,SAAN;IAHF;EANI;;;AAcN,KAAI,eAAe,UAAU,KAAV;;;;;;;;;KAgBE;;;;;;;;;;;;;;4MAyHnB,QAAmB;AACjB,iBAAU,KAAV;;AAEA,cAAO,GAAP,EAAY,OAAO,GAAP;AACZ,wBAAiB,GAAjB;cAaF,kBAA4C,UAAC,CAAD,EAAO;;AAEjD,aAAK,KAAL,CAAW,WAAX,CAAuB,CAAvB;;;AAFiD,WAK7C,CAAC,MAAK,KAAL,CAAW,aAAX,IAA4B,OAAO,EAAE,MAAF,KAAa,QAApB,IAAgC,EAAE,MAAF,KAAa,CAAb,EAAgB,OAAO,KAAP,CAAjF;;;AALiD,WAQ7C,MAAK,KAAL,CAAW,QAAX,IACD,EAAE,EAAE,MAAF,YAAoB,IAApB,CAAF,IACA,MAAK,KAAL,CAAW,MAAX,IAAqB,CAAC,6BAAgB,EAAE,MAAF,EAAU,MAAK,KAAL,CAAW,MAAX,CAA3B,IACrB,MAAK,KAAL,CAAW,MAAX,IAAqB,6BAAgB,EAAE,MAAF,EAAU,MAAK,KAAL,CAAW,MAAX,CAA/C,EAAoE;AACrE,gBADqE;QAHvE;;;;;AARiD,WAkB7C,EAAE,aAAF,EAAgB;AAClB,eAAK,QAAL,CAAc,EAAC,iBAAiB,EAAE,aAAF,CAAgB,CAAhB,EAAmB,UAAnB,EAAhC,EADkB;QAApB;;;;AAlBiD,WAwB7C,MAAK,KAAL,CAAW,oBAAX,EAAiC,mCAArC;;;AAxBiD;iCA2BlC,qCAAmB,CAAnB,SA3BkC;;WA2B1C,0BA3B0C;WA2BvC;;;AA3BuC;AA8BjD,WAAM,YAAY,wCAAqB,CAArB,EAAwB,CAAxB,CAAZ,CA9B2C;;AAgCjD,0BAAI,oCAAJ,EAA0C,SAA1C;;;AAhCiD,yBAmCjD,CAAI,SAAJ,EAAe,MAAK,KAAL,CAAW,OAAX,CAAf,CAnCiD;AAoCjD,WAAM,eAAe,MAAK,KAAL,CAAW,OAAX,CAAmB,CAAnB,EAAsB,SAAtB,CAAf,CApC2C;AAqCjD,WAAI,iBAAiB,KAAjB,EAAwB,OAA5B;;;;;AArCiD,YA2CjD,CAAK,QAAL,CAAc;AACZ,mBAAU,IAAV;;AAEA,gBAAO,CAAP;AACA,gBAAO,CAAP;QAJF;;;;;AA3CiD,4BAqDjD,CAAS,QAAT,EAAmB,aAAa,IAAb,EAAmB,MAAK,UAAL,CAAtC,CArDiD;AAsDjD,6BAAS,QAAT,EAAmB,aAAa,IAAb,EAAmB,MAAK,cAAL,CAAtC,CAtDiD;MAAP,QAyD5C,aAAuC,UAAC,CAAD,EAAO;;AAE5C,WAAI,EAAE,aAAF,IAAoB,EAAE,aAAF,CAAgB,CAAhB,EAAmB,UAAnB,KAAkC,MAAK,KAAL,CAAW,eAAX,EAA6B,OAAvF;;kCAEa,qCAAmB,CAAnB,SAJ+B;;WAIvC,2BAJuC;WAIpC;;;AAJoC;AAO5C,WAAI,MAAM,OAAN,CAAc,MAAK,KAAL,CAAW,IAAX,CAAlB,EAAoC;AAClC,aAAI,SAAS,IAAI,MAAK,KAAL,CAAW,KAAX;aAAkB,SAAS,IAAI,MAAK,KAAL,CAAW,KAAX,CADd;;2BAEf,6BAAW,MAAK,KAAL,CAAW,IAAX,EAAiB,MAA5B,EAAoC,MAApC,EAFe;;;;AAEjC,kCAFiC;AAEzB,kCAFyB;;AAGlC,aAAI,CAAC,MAAD,IAAW,CAAC,MAAD,EAAS,OAAxB;AAHkC,UAIlC,GAAI,MAAK,KAAL,CAAW,KAAX,GAAmB,MAAnB,EAA2B,IAAI,MAAK,KAAL,CAAW,KAAX,GAAmB,MAAnB,CAJD;QAApC;;AAOA,WAAM,YAAY,wCAAqB,CAArB,EAAwB,CAAxB,CAAZ,CAdsC;;AAgB5C,0BAAI,+BAAJ,EAAqC,SAArC;;;AAhB4C,WAmBtC,eAAe,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,SAArB,CAAf,CAnBsC;AAoB5C,WAAI,iBAAiB,KAAjB,EAAwB;AAC1B,eAAK,cAAL,CAAoB,IAAI,UAAJ,EAApB,EAD0B;AAE1B,gBAF0B;QAA5B;;AAKA,aAAK,QAAL,CAAc;AACZ,gBAAO,CAAP;AACA,gBAAO,CAAP;QAFF,EAzB4C;MAAP,QA+BvC,iBAA2C,UAAC,CAAD,EAAO;AAChD,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAA1B;;;;AADgD,WAK5C,EAAE,cAAF,IAAqB,EAAE,cAAF,CAAiB,CAAjB,EAAoB,UAApB,KAAmC,MAAK,KAAL,CAAW,eAAX,EAA6B,OAAzF;;;AALgD,WAQ5C,MAAK,KAAL,CAAW,oBAAX,EAAiC,sCAArC;;kCAEe,qCAAmB,CAAnB,SAViC;;WAUzC,2BAVyC;WAUtC,2BAVsC;;AAWhD,WAAM,YAAY,wCAAqB,CAArB,EAAwB,CAAxB,CAAZ,CAX0C;;AAahD,0BAAI,mCAAJ,EAAyC,SAAzC;;;AAbgD,YAgBhD,CAAK,QAAL,CAAc;AACZ,mBAAU,KAAV;AACA,gBAAO,GAAP;AACA,gBAAO,GAAP;QAHF;;;AAhBgD,YAuBhD,CAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,SAArB;;;AAvBgD,yBA0BhD,CAAI,kCAAJ,EA1BgD;AA2BhD,gCAAY,QAAZ,EAAsB,aAAa,IAAb,EAAmB,MAAK,UAAL,CAAzC,CA3BgD;AA4BhD,gCAAY,QAAZ,EAAsB,aAAa,IAAb,EAAmB,MAAK,cAAL,CAAzC,CA5BgD;MAAP,QA+B3C,cAAwC,UAAC,CAAD,EAAO;AAC7C,sBAAe,UAAU,KAAV;;AAD8B,cAGtC,MAAK,eAAL,CAAqB,CAArB,CAAP,CAH6C;MAAP,QAMxC,YAAsC,UAAC,CAAD,EAAO;AAC3C,sBAAe,UAAU,KAAV,CAD4B;;AAG3C,cAAO,MAAK,cAAL,CAAoB,CAApB,CAAP,CAH2C;MAAP,QAOtC,eAAyC,UAAC,CAAD,EAAO;;AAE9C,sBAAe,UAAU,KAAV,CAF+B;;AAI9C,cAAO,MAAK,eAAL,CAAqB,CAArB,CAAP,CAJ8C;MAAP,QAOzC,aAAuC,UAAC,CAAD,EAAO;;AAE5C,sBAAe,UAAU,KAAV,CAF6B;;AAI5C,cAAO,MAAK,cAAL,CAAoB,CAApB,CAAP,CAJ4C;MAAP;;;gBArRpB;;4CAgII;;;AAGrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,UAAL,CAA5C,CAHqB;AAIrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,UAAL,CAA5C,CAJqB;AAKrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,cAAL,CAA5C,CALqB;AAMrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,cAAL,CAA5C,CANqB;AAOrB,WAAI,KAAK,KAAL,CAAW,oBAAX,EAAiC,sCAArC;;;;;;;8BAqJsB;;;AAGtB,cAAO,gBAAM,YAAN,CAAmB,gBAAM,QAAN,CAAe,IAAf,CAAoB,KAAK,KAAL,CAAW,QAAX,CAAvC,EAA6D;AAClE,gBAAO,wBAAW,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,KAA1B,CAAlB;;;;AAIA,sBAAa,KAAK,WAAL;AACb,uBAAc,KAAK,YAAL;AACd,oBAAW,KAAK,SAAL;AACX,qBAAY,KAAK,UAAL;QARP,CAAP,CAHsB;;;;UA5RL;GAAsB,gBAAM,SAAN;;AAAtB,eAEZ,cAAc;AAFF,eAIZ,YAAY;;;;;;;AAOjB,kBAAe,iBAAU,IAAV;;;;;;AAMf,aAAU,iBAAU,IAAV;;;;;;;AAOV,yBAAsB,iBAAU,IAAV;;;;;AAKtB,SAAM,iBAAU,OAAV,CAAkB,iBAAU,MAAV,CAAxB;;;;;;;;;;;;;;;;;;;;;;AAsBA,WAAQ,iBAAU,MAAV;;;;;;;;;;;;;;;;;;;;;;AAsBR,WAAQ,iBAAU,MAAV;;;;;;AAMR,YAAS,iBAAU,IAAV;;;;;;AAMT,WAAQ,iBAAU,IAAV;;;;;;AAMR,WAAQ,iBAAU,IAAV;;;;;;AAMR,gBAAa,iBAAU,IAAV;;;;;AAKb,8BAlGiB;AAmGjB,0BAnGiB;AAoGjB,8BApGiB;;AAJA,eA2GZ,eAAe;AACpB,kBAAe,KAAf;AACA,WAAQ,IAAR;AACA,aAAU,KAAV;AACA,yBAAsB,IAAtB;AACA,WAAQ,IAAR;AACA,SAAM,IAAN;AACA,cAAW,IAAX;AACA,YAAS,mBAAU,EAAV;AACT,WAAQ,kBAAU,EAAV;AACR,WAAQ,kBAAU,EAAV;AACR,gBAAa,uBAAU,EAAV;;mBAtHI,c;;;;;;;;;;;mBCvCG;;;AAAT,UAAS,GAAT,GAA2B;;;AACxC,OAAI,aAA6B,qBAAQ,GAAR,4BAAjC","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 45868ded4cb7860818c0\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: this.props.position ? this.props.position.x : this.props.defaultPosition.x,\n y: this.props.position ? this.props.position.y : this.props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 8bbf3057..df056d1a 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,x:_this.props.position?_this.props.position.x:_this.props.defaultPosition.x,y:_this.props.position?_this.props.position.y:_this.props.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreData){(0,_log2["default"])("Draggable: onDragStart: %j",coreData);var shouldStart=_this.props.onStart(e,(0,_positionFns.createDraggableData)(_this,coreData));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreData){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreData);var uiData=(0,_positionFns.createDraggableData)(_this,coreData),newState={x:uiData.x,y:uiData.y};if(_this.props.bounds){var _x=newState.x,_y=newState.y;newState.x+=_this.state.slackX,newState.y+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.x,newState.y),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.x=_getBoundPosition2[0],newState.y=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_x-newState.x),newState.slackY=_this.state.slackY+(_y-newState.y),uiData.x=_x,uiData.y=_y,uiData.deltaX=newState.x-_this.state.x,uiData.deltaY=newState.y-_this.state.y}var shouldUpdate=_this.props.onDrag(e,uiData);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreData){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_positionFns.createDraggableData)(_this,coreData));return shouldStop===!1?!1:((0,_log2["default"])("Draggable: onDragStop: %j",coreData),void _this.setState({dragging:!1,slackX:0,slackY:0}))},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentDidMount",value:function(){_reactDom2["default"].findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&!controlled?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&!controlled?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:NaN},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier}),_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)();var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,x:_this.props.position?_this.props.position.x:_this.props.defaultPosition.x,y:_this.props.position?_this.props.position.y:_this.props.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreData){(0,_log2["default"])("Draggable: onDragStart: %j",coreData);var shouldStart=_this.props.onStart(e,(0,_positionFns.createDraggableData)(_this,coreData));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreData){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreData);var uiData=(0,_positionFns.createDraggableData)(_this,coreData),newState={x:uiData.x,y:uiData.y};if(_this.props.bounds){var _x=newState.x,_y=newState.y;newState.x+=_this.state.slackX,newState.y+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.x,newState.y),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.x=_getBoundPosition2[0],newState.y=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_x-newState.x),newState.slackY=_this.state.slackY+(_y-newState.y),uiData.x=_x,uiData.y=_y,uiData.deltaX=newState.x-_this.state.x,uiData.deltaY=newState.y-_this.state.y}var shouldUpdate=_this.props.onDrag(e,uiData);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreData){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_positionFns.createDraggableData)(_this,coreData));if(shouldStop===!1)return!1;(0,_log2["default"])("Draggable: onDragStop: %j",coreData);var newState={dragging:!1,slackX:0,slackY:0},controlled=Boolean(_this.props.position);if(controlled){var _this$props$position=_this.props.position,_x2=_this$props$position.x,_y2=_this$props$position.y;newState.x=_x2,newState.y=_y2}_this.setState(newState)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){_reactDom2["default"].findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:NaN},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier}),_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)();var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 375a3ca4..34b5bd43 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap da61f1175b2a5258dc2a","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","x","_this","props","position","defaultPosition","y","slackX","slackY","isElementSVG","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","onDrag","uiData","newState","bounds","_x","_y","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","_temp","_possibleConstructorReturn","_ret","_reactDom2","findDOMNode","SVGElement","nextProps","style","svgTransform","controlled","Boolean","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","draggable","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","enableUserSelectHack","_getControlPosition","coreEvent","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 45868ded4cb7860818c0","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","x","_this","props","position","defaultPosition","y","slackX","slackY","isElementSVG","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","onDrag","uiData","newState","bounds","_x","_y","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","_x2","_this$props$position","_y2","_temp","_possibleConstructorReturn","_ret","console","warn","_reactDom2","findDOMNode","SVGElement","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","enableUserSelectHack","_getControlPosition","coreEvent","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 9c634720..960ec079 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.0-beta1", + "version": "2.0.0-beta2", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From cb1bf129df9d1552ca6722cd2f1ec70982d72f70 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 Apr 2016 14:24:13 -0500 Subject: [PATCH 171/412] Add flow comments to build --- .babelrc | 3 +++ package.json | 1 + 2 files changed, 4 insertions(+) diff --git a/.babelrc b/.babelrc index a9d17f4e..6ffe6581 100644 --- a/.babelrc +++ b/.babelrc @@ -3,5 +3,8 @@ "es2015", "stage-1", "react" + ], + "plugins": [ + "transform-flow-comments", ] } diff --git a/package.json b/package.json index 960ec079..d3515a34 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "babel-core": "^6.5.1", "babel-eslint": "^6.0.2", "babel-loader": "^6.2.2", + "babel-plugin-transform-flow-comments": "^6.7.0", "babel-preset-es2015": "^6.5.0", "babel-preset-react": "^6.5.0", "babel-preset-stage-1": "^6.5.0", From 8a2deb7435216a7ebbff91ed5af08fc7abc38e71 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 Apr 2016 14:24:46 -0500 Subject: [PATCH 172/412] README rework --- README.md | 134 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 76 insertions(+), 58 deletions(-) diff --git a/README.md b/README.md index 76345960..699f0ea0 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,29 @@ -# React-Draggable [![Build Status](https://travis-ci.org/mzabriskie/react-draggable.svg?branch=master)](https://travis-ci.org/mzabriskie/react-draggable) +# React-Draggable [![Build Status](https://travis-ci.org/mzabriskie/react-draggable.svg?branch=master)](https://travis-ci.org/mzabriskie/react-draggable) [![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)]() A simple component for making elements draggable. -[View the Changelog](CHANGELOG.md) +```js + +
I can now be moved around!
+
+``` + +- [Demo](http://mzabriskie.github.io/react-draggable/example/) +- [Changelog](CHANGELOG.md) -### Demo +------ + +#### Technical Documentation + +- [Installing](#installing) +- [Exports](#exports) +- [Draggable](#draggable) +- [Draggable Usage](#draggable-usage) +- [Draggable API](#draggable-api) +- [Controlled vs. Uncontrolled](#controlled-vs-uncontrolled) +- [DraggableCore](#draggablecore) +- [DraggableCore API](#draggablecore-api) -[View Demo](http://mzabriskie.github.io/react-draggable/example/) ### Installing @@ -49,11 +66,52 @@ positioning (relative, absolute, or static). Elements can also be moved between If the item you are dragging already has a CSS Transform applied, it will be overwritten by ``. Use an intermediate wrapper (`...`) in this case. +### Draggable Usage + +View the [Demo](http://mzabriskie.github.io/react-draggable/example/) and its +[source](/example/index.html) for more. + +```js +import React from 'react'); +import ReactDOM from 'react-dom'; +import Draggable from 'react-draggable'; + +class App extends React.Element { + + eventLogger = (e: MouseEvent, data: Object) => { + console.log('Event: ', event); + console.log('Data: ', data); + }; + + render() { + return ( + +
+
Drag from here
+
This readme is really dragging on...
+
+
+ ); + } +} + +ReactDOM.render(, document.body); +``` ### Draggable API -The `` component transparently adds draggable to whatever element is supplied as `this.props.children`. -**Note**: Only a single element is allowed or an Error will be thrown. +The `` component transparently adds draggability to its children. + +**Note**: Only a single child is allowed or an Error will be thrown. For the `` component to correctly attach itself to its child, the child element must provide support for the following props: @@ -61,13 +119,16 @@ for the following props: - `className` is used to apply the proper classes to the object being dragged. - `onMouseDown`, `onMouseUp`, `onTouchStart`, and `onTouchEnd` are used to keep track of dragging state. -React.DOM elements support the above six properties by default, so you may use those elements as children without -any changes. If you wish to use a React component you created, you might find -[this React page](https://facebook.github.io/react/docs/transferring-props.html) helpful. +React.DOM elements support the above properties by default, so you may use those elements as children without +any changes. If you wish to use a React component you created, you'll need to be sure to +[transfer prop](https://facebook.github.io/react/docs/transferring-props.html). -Props: +#### `` Props: ```js +// +// Types: +// type DraggableEventHandler = (e: Event, data: DraggableData) => void | false; type DraggableData = { node: HTMLElement, @@ -76,6 +137,10 @@ type DraggableData = { deltaX: number, deltaY: number, lastX: number, lastY: number }; + +// +// Props: +// { // If set to `true`, will allow dragging on non left-button clicks. allowAnyClick: boolean, @@ -119,7 +184,7 @@ handle: string, // Called whenever the user mouses down. Called regardless of handle or // disabled status. -onMouseDown: (e: MouseEvent) => boolean, +onMouseDown: (e: MouseEvent) => void, // Called when dragging starts. If `false` is returned any handler, // the action will cancel. @@ -143,53 +208,6 @@ Note that sending `className`, `style`, or `transform` as properties will error directly. -### Draggable Usage - -```js -var React = require('react'),; -var ReactDOM = require('react-dom'); -var Draggable = require('react-draggable'); - -var App = React.createClass({ - handleStart: function (event, ui) { - console.log('Event: ', event); - console.log('Position: ', ui.position); - }, - - handleDrag: function (event, ui) { - console.log('Event: ', event); - console.log('Position: ', ui.position); - }, - - handleStop: function (event, ui) { - console.log('Event: ', event); - console.log('Position: ', ui.position); - }, - - render: function () { - return ( - -
-
Drag from here
-
This readme is really dragging on...
-
-
- ); - } -}); - -ReactDOM.render(, document.body); -``` - ## Controlled vs. Uncontrolled `` is a 'batteries-included' component that manages its own state. If you want to completely From f5d003c512bee3b0435814f05dec52b1c0dc55b5 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 Apr 2016 14:26:37 -0500 Subject: [PATCH 173/412] release v2.0.0-beta3 --- CHANGELOG.md | 5 ++ bower.json | 2 +- dist/react-draggable.js | 91 +++++++++++++++++++++------------ dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 6 files changed, 67 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77d495e7..14d1b859 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 2.0.0-beta3 (Apr 19, 2016) + +- Flow comments are now in the build. Other projects, such as React-Grid-Layout and React-Resizable, will + rely on them in their build and export their own comments. + ### 2.0.0-beta2 (Apr 14, 2016) - We're making a small deviation from React Core's controlled vs. uncontrolled scheme; for convenience, diff --git a/bower.json b/bower.json index 0c1d42bb..88571e82 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.0-beta2", + "version": "2.0.0-beta3", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index fbb9657e..7441c8f0 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -111,10 +111,21 @@ return /******/ (function(modules) { // webpackBootstrap // $FlowIgnore + /*:: import type {DraggableEventHandler} from './utils/types';*/ + + // // Define // + /*:: type DraggableState = { + dragging: boolean, + dragged: boolean, + x: number, y: number, + slackX: number, slackY: number, + isElementSVG: boolean + };*/ + var Draggable = function (_React$Component) { _inherits(Draggable, _React$Component); @@ -160,7 +171,7 @@ return /******/ (function(modules) { // webpackBootstrap var uiData = (0, _positionFns.createDraggableData)(_this, coreData); - var newState = { + var newState /*: $Shape*/ = { x: uiData.x, y: uiData.y }; @@ -214,7 +225,7 @@ return /******/ (function(modules) { // webpackBootstrap (0, _log2.default)('Draggable: onDragStop: %j', coreData); - var newState = { + var newState /*: $Shape*/ = { dragging: false, slackX: 0, slackY: 0 @@ -254,7 +265,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { + value: function componentWillReceiveProps(nextProps /*: Object*/) { // Set x/y if position has changed if (nextProps.position && (!this.props.position || nextProps.position.x !== this.props.position.x || nextProps.position.y !== this.props.position.y)) { this.setState({ x: nextProps.position.x, y: nextProps.position.y }); @@ -533,8 +544,11 @@ return /******/ (function(modules) { // webpackBootstrap function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + /*:: import type {ControlPosition} from './types';*/ + + var matchesSelectorFunc = ''; - function matchesSelector(el, selector) { + function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/ { if (!matchesSelectorFunc) { matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) { // $FlowIgnore: Doesn't think elements are indexable @@ -546,7 +560,7 @@ return /******/ (function(modules) { // webpackBootstrap return el[matchesSelectorFunc].call(el, selector); } - function addEvent(el, event, handler) { + function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { if (!el) { return; } @@ -560,7 +574,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - function removeEvent(el, event, handler) { + function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { if (!el) { return; } @@ -574,7 +588,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - function outerHeight(node) { + function outerHeight(node /*: HTMLElement*/) /*: number*/ { // This is deliberately excluding margin for our calculations, since we are using // offsetTop which is including margin. See getBoundPosition var height = node.clientHeight; @@ -584,7 +598,7 @@ return /******/ (function(modules) { // webpackBootstrap return height; } - function outerWidth(node) { + function outerWidth(node /*: HTMLElement*/) /*: number*/ { // This is deliberately excluding margin for our calculations, since we are using // offsetLeft which is including margin. See getBoundPosition var width = node.clientWidth; @@ -593,7 +607,7 @@ return /******/ (function(modules) { // webpackBootstrap width += (0, _shims.int)(computedStyle.borderRightWidth); return width; } - function innerHeight(node) { + function innerHeight(node /*: HTMLElement*/) /*: number*/ { var height = node.clientHeight; var computedStyle = window.getComputedStyle(node); height -= (0, _shims.int)(computedStyle.paddingTop); @@ -601,7 +615,7 @@ return /******/ (function(modules) { // webpackBootstrap return height; } - function innerWidth(node) { + function innerWidth(node /*: HTMLElement*/) /*: number*/ { var width = node.clientWidth; var computedStyle = window.getComputedStyle(node); width -= (0, _shims.int)(computedStyle.paddingLeft); @@ -610,7 +624,7 @@ return /******/ (function(modules) { // webpackBootstrap } // Get from offsetParent - function offsetXYFromParentOf(e, node) { + function offsetXYFromParentOf(e /*: MouseEvent*/, node /*: HTMLElement & {offsetParent: HTMLElement}*/) /*: ControlPosition*/ { var evt = e.targetTouches ? e.targetTouches[0] : e; var offsetParent = node.offsetParent || document.body; @@ -622,7 +636,7 @@ return /******/ (function(modules) { // webpackBootstrap return { x: x, y: y }; } - function createCSSTransform(_ref) { + function createCSSTransform(_ref) /*: Object*/ { var x = _ref.x; var y = _ref.y; @@ -630,7 +644,7 @@ return /******/ (function(modules) { // webpackBootstrap return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix2.default), 'translate(' + x + 'px,' + y + 'px)'); } - function createSVGTransform(_ref3) { + function createSVGTransform(_ref3) /*: string*/ { var x = _ref3.x; var y = _ref3.y; @@ -654,8 +668,8 @@ return /******/ (function(modules) { // webpackBootstrap document.body.setAttribute('style', style.replace(userSelectStyle, '')); } - function styleHacks() { - var childStyle = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + function styleHacks() /*: Object*/ { + var childStyle /*: Object*/ = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; // Workaround IE pointer events; see #51 // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 @@ -680,25 +694,25 @@ return /******/ (function(modules) { // webpackBootstrap exports.dontSetMe = dontSetMe; // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc - function findInArray(array, callback) { + function findInArray(array /*: Array*/, callback /*: Function*/) /*: any*/ { for (var i = 0, length = array.length; i < length; i++) { if (callback.apply(callback, [array[i], i, array])) return array[i]; } } - function isFunction(func) { + function isFunction(func /*: any*/) /*: boolean*/ { return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; } - function isNum(num) { + function isNum(num /*: any*/) /*: boolean*/ { return typeof num === 'number' && !isNaN(num); } - function int(a) { + function int(a /*: string*/) /*: number*/ { return parseInt(a, 10); } - function dontSetMe(props, propName, componentName) { + function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) { if (props[propName]) { return new Error('Invalid prop ' + propName + ' passed to ' + componentName + ' - do not set this, set it on the child.'); } @@ -718,8 +732,8 @@ return /******/ (function(modules) { // webpackBootstrap exports.browserPrefixToStyle = browserPrefixToStyle; var prefixes = ['Moz', 'Webkit', 'O', 'ms']; - function getPrefix() { - var prop = arguments.length <= 0 || arguments[0] === undefined ? 'transform' : arguments[0]; + function getPrefix() /*: string*/ { + var prop /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? 'transform' : arguments[0]; // Checking specifically for 'window.document' is for pseudo-browser server-side // environments that define 'window' as the global context. @@ -737,15 +751,15 @@ return /******/ (function(modules) { // webpackBootstrap return ''; } - function browserPrefixToKey(prop, prefix) { + function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/ { return prefix ? '' + prefix + kebabToTitleCase(prop) : prop; } - function browserPrefixToStyle(prop, prefix) { + function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/ { return prefix ? '-' + prefix.toLowerCase() + '-' + prop : prop; } - function kebabToTitleCase(str) { + function kebabToTitleCase(str /*: string*/) /*: string*/ { var out = ''; var shouldCapitalize = true; for (var i = 0; i < str.length; i++) { @@ -793,7 +807,10 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function getBoundPosition(draggable, x, y) { + /*:: import type Draggable from '../Draggable';*/ + /*:: import type {Bounds, ControlPosition, DraggableData} from './types';*/ + /*:: import type DraggableCore from '../DraggableCore';*/ + function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/ { // If no bounds, short-circuit and move on if (!draggable.props.bounds) return [x, y]; @@ -833,27 +850,27 @@ return /******/ (function(modules) { // webpackBootstrap return [x, y]; } - function snapToGrid(grid, pendingX, pendingY) { + function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/ { var x = Math.round(pendingX / grid[0]) * grid[0]; var y = Math.round(pendingY / grid[1]) * grid[1]; return [x, y]; } - function canDragX(draggable) { + function canDragX(draggable /*: Draggable*/) /*: boolean*/ { return draggable.props.axis === 'both' || draggable.props.axis === 'x'; } - function canDragY(draggable) { + function canDragY(draggable /*: Draggable*/) /*: boolean*/ { return draggable.props.axis === 'both' || draggable.props.axis === 'y'; } // Get {x, y} positions from event. - function getControlPosition(e, draggableCore) { + function getControlPosition(e /*: MouseEvent*/, draggableCore /*: DraggableCore*/) /*: ControlPosition*/ { return (0, _domFns.offsetXYFromParentOf)(e, _reactDom2.default.findDOMNode(draggableCore)); } // Create an data object exposed by 's events - function createCoreData(draggable, x, y) { + function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/ { // State changes are often (but not always!) async. We want the latest value. var state = draggable._pendingState || draggable.state; var isStart = !(0, _shims.isNum)(state.lastX); @@ -878,7 +895,7 @@ return /******/ (function(modules) { // webpackBootstrap } // Create an data exposed by 's events - function createDraggableData(draggable, coreData) { + function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/ { return { node: coreData.node, x: draggable.state.x + coreData.deltaX, @@ -891,7 +908,7 @@ return /******/ (function(modules) { // webpackBootstrap } // A lot faster than stringify/parse - function cloneBounds(bounds) { + function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/ { return { left: bounds.left, top: bounds.top, @@ -937,6 +954,7 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Simple abstraction for dragging events names. + /*:: import type {EventHandler} from './utils/types';*/ var eventsFor = { touch: { start: 'touchstart', @@ -960,6 +978,13 @@ return /******/ (function(modules) { // webpackBootstrap // work well with libraries that require more control over the element. // + /*:: type CoreState = { + dragging: boolean, + lastX: number, + lastY: number, + touchIdentifier: number + };*/ + var DraggableCore = function (_React$Component) { _inherits(DraggableCore, _React$Component); diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 17dead97..af742507 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 45868ded4cb7860818c0",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACtCA,QAAO,OAAP,GAAiB,oBAAQ,CAAR,EAA2B,OAA3B;AACjB,QAAO,OAAP,CAAe,aAAf,GAA+B,oBAAQ,CAAR,EAA+B,OAA/B,C;;;;;;;;;;;;;;;;;;ACA/B;;;;AACA;;;;AAEA;;;;AACA;;AACA;;AACA;;AACA;;;;AACA;;;;;;;;;;;;;;;;;;KAeqB;;;;;;;;;;;;;;wMA2HnB,QAAwB;;AAEtB,iBAAU,KAAV;;;AAGA,gBAAS,KAAT;;;AAGA,UAAG,MAAK,KAAL,CAAW,QAAX,GAAsB,MAAK,KAAL,CAAW,QAAX,CAAoB,CAApB,GAAwB,MAAK,KAAL,CAAW,eAAX,CAA2B,CAA3B;AACjD,UAAG,MAAK,KAAL,CAAW,QAAX,GAAsB,MAAK,KAAL,CAAW,QAAX,CAAoB,CAApB,GAAwB,MAAK,KAAL,CAAW,eAAX,CAA2B,CAA3B;;;AAGjD,eAAQ,CAAR,EAAW,QAAQ,CAAR;;;AAGX,qBAAc,KAAd;cAmCF,cAAqC,UAAC,CAAD,EAAI,QAAJ,EAAiB;AACpD,0BAAI,4BAAJ,EAAkC,QAAlC;;;AADoD,WAI9C,cAAc,MAAK,KAAL,CAAW,OAAX,CAAmB,CAAnB,EAAsB,6CAA0B,QAA1B,CAAtB,CAAd;;AAJ8C,WAMhD,gBAAgB,KAAhB,EAAuB,OAAO,KAAP,CAA3B;;AAEA,aAAK,QAAL,CAAc,EAAC,UAAU,IAAV,EAAgB,SAAS,IAAT,EAA/B,EARoD;MAAjB,QAWrC,SAAgC,UAAC,CAAD,EAAI,QAAJ,EAAiB;AAC/C,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAAO,KAAP,CAA1B;AACA,0BAAI,uBAAJ,EAA6B,QAA7B,EAF+C;;AAI/C,WAAM,SAAS,6CAA0B,QAA1B,CAAT,CAJyC;;AAM/C,WAAM,WAAmC;AACvC,YAAG,OAAO,CAAP;AACH,YAAG,OAAO,CAAP;QAFC;;;AANyC,WAY3C,MAAK,KAAL,CAAW,MAAX,EAAmB;;aAEd,KAAQ,SAAR,EAFc;aAEX,KAAK,SAAL;;;;;AAFW;AAOrB,kBAAS,CAAT,IAAc,MAAK,KAAL,CAAW,MAAX,CAPO;AAQrB,kBAAS,CAAT,IAAc,MAAK,KAAL,CAAW,MAAX;;;;AARO;;;;iCAYM,0CAAuB,SAAS,CAAT,EAAY,SAAS,CAAT,EAZzC;;;;AAYpB,kBAAS,CAAT,yBAZoB;AAYR,kBAAS,CAAT,yBAZQ;AAerB,kBAAS,MAAT,GAAkB,MAAK,KAAL,CAAW,MAAX,IAAqB,KAAI,SAAS,CAAT,CAAzB,CAfG;AAgBrB,kBAAS,MAAT,GAAkB,MAAK,KAAL,CAAW,MAAX,IAAqB,KAAI,SAAS,CAAT,CAAzB;;;AAhBG,eAmBrB,CAAO,CAAP,GAAW,EAAX,CAnBqB;AAoBrB,gBAAO,CAAP,GAAW,EAAX,CApBqB;AAqBrB,gBAAO,MAAP,GAAgB,SAAS,CAAT,GAAa,MAAK,KAAL,CAAW,CAAX,CArBR;AAsBrB,gBAAO,MAAP,GAAgB,SAAS,CAAT,GAAa,MAAK,KAAL,CAAW,CAAX,CAtBR;QAAvB;;;AAZ+C,WAsCzC,eAAe,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,MAArB,CAAf,CAtCyC;AAuC/C,WAAI,iBAAiB,KAAjB,EAAwB,OAAO,KAAP,CAA5B;;AAEA,aAAK,QAAL,CAAc,QAAd,EAzC+C;MAAjB,QA4ChC,aAAoC,UAAC,CAAD,EAAI,QAAJ,EAAiB;AACnD,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAAO,KAAP,CAA1B;;;AADmD,WAI7C,aAAa,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,6CAA0B,QAA1B,CAArB,CAAb,CAJ6C;AAKnD,WAAI,eAAe,KAAf,EAAsB,OAAO,KAAP,CAA1B;;AAEA,0BAAI,2BAAJ,EAAiC,QAAjC,EAPmD;;AASnD,WAAM,WAAmC;AACvC,mBAAU,KAAV;AACA,iBAAQ,CAAR;AACA,iBAAQ,CAAR;QAHI;;;;AAT6C,WAiB7C,aAAa,QAAQ,MAAK,KAAL,CAAW,QAAX,CAArB,CAjB6C;AAkBnD,WAAI,UAAJ,EAAgB;oCACC,MAAK,KAAL,CAAW,QAAX,CADD;aACP,6BADO;aACJ,6BADI;;AAEd,kBAAS,CAAT,GAAa,GAAb,CAFc;AAGd,kBAAS,CAAT,GAAa,GAAb,CAHc;QAAhB;;AAMA,aAAK,QAAL,CAAc,QAAd,EAxBmD;MAAjB;;;gBApOjB;;0CA6IE;AACnB,WAAI,KAAK,KAAL,CAAW,QAAX,IAAuB,EAAE,KAAK,KAAL,CAAW,MAAX,IAAqB,KAAK,KAAL,CAAW,MAAX,CAAvB,EAA2C;;AAEpE,iBAAQ,IAAR,CAAa,8FACX,uGADW,GAEX,6BAFW,CAAb,CAFoE;QAAtE;;;;yCAQkB;;AAElB,WAAG,mBAAS,WAAT,CAAqB,IAArB,aAAsC,UAAtC,EAAkD;AACnD,cAAK,QAAL,CAAc,EAAE,cAAc,IAAd,EAAhB,EADmD;QAArD;;;;+CAKwB,WAAmB;;AAE3C,WAAI,UAAU,QAAV,KACC,CAAC,KAAK,KAAL,CAAW,QAAX,IACA,UAAU,QAAV,CAAmB,CAAnB,KAAyB,KAAK,KAAL,CAAW,QAAX,CAAoB,CAApB,IACzB,UAAU,QAAV,CAAmB,CAAnB,KAAyB,KAAK,KAAL,CAAW,QAAX,CAAoB,CAApB,CAH3B,EAKA;AACF,cAAK,QAAL,CAAc,EAAE,GAAG,UAAU,QAAV,CAAmB,CAAnB,EAAsB,GAAG,UAAU,QAAV,CAAmB,CAAnB,EAA5C,EADE;QALJ;;;;4CAUqB;AACrB,YAAK,QAAL,CAAc,EAAC,UAAU,KAAV,EAAf;AADqB;;;8BAsFC;AACtB,WAAI,QAAQ,EAAR;WAAY,eAAe,IAAf;;;AADM,WAIhB,aAAa,QAAQ,KAAK,KAAL,CAAW,QAAX,CAArB,CAJgB;AAKtB,WAAM,YAAY,CAAC,UAAD,IAAe,KAAK,KAAL,CAAW,QAAX,CALX;;AAOtB,WAAM,WAAW,KAAK,KAAL,CAAW,QAAX,IAAuB,KAAK,KAAL,CAAW,eAAX,CAPlB;AAQtB,WAAM,gBAAgB;;AAEpB,YAAG,2BAAS,IAAT,KAAkB,SAAlB,GACD,KAAK,KAAL,CAAW,CAAX,GACA,SAAS,CAAT;;;AAGF,YAAG,2BAAS,IAAT,KAAkB,SAAlB,GACD,KAAK,KAAL,CAAW,CAAX,GACA,SAAS,CAAT;QATE;;;AARgB,WAqBlB,KAAK,KAAL,CAAW,YAAX,EAAyB;AAC3B,wBAAe,gCAAmB,aAAnB,CAAf,CAD2B;QAA7B,MAEO;;;;;AAKL,iBAAQ,gCAAmB,aAAnB,CAAR,CALK;QAFP;;;AArBsB,WAgChB,YAAY,0BAAY,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,SAA1B,IAAuC,EAAvC,EAA4C,iBAAxD,EAA2E;AAC3F,qCAA4B,KAAK,KAAL,CAAW,QAAX;AAC5B,oCAA2B,KAAK,KAAL,CAAW,OAAX;QAFX,CAAZ;;;;AAhCgB,cAwCpB;;sBAAmB,KAAK,KAAL,IAAY,SAAS,KAAK,WAAL,EAAkB,QAAQ,KAAK,MAAL,EAAa,QAAQ,KAAK,UAAL,GAAvF;SACG,gBAAM,YAAN,CAAmB,gBAAM,QAAN,CAAe,IAAf,CAAoB,KAAK,KAAL,CAAW,QAAX,CAAvC,EAA6D;AAC5D,sBAAW,SAAX;AACA,+BAAW,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,KAA1B,EAAoC,MAA/C;AACA,sBAAW,YAAX;UAHD,CADH;QADF,CAvCsB;;;;UA/PL;GAAkB,gBAAM,SAAN;;AAAlB,WAEZ,cAAc;AAFF,WAIZ,yBAEF,wBAAc,SAAd;;;;;;;;;;;;;;;AAeH,SAAM,iBAAU,KAAV,CAAgB,CAAC,MAAD,EAAS,GAAT,EAAc,GAAd,EAAmB,MAAnB,CAAhB,CAAN;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,WAAQ,iBAAU,SAAV,CAAoB,CAC1B,iBAAU,KAAV,CAAgB;AACd,WAAM,iBAAU,MAAV;AACN,YAAO,iBAAU,MAAV;AACP,UAAK,iBAAU,MAAV;AACL,aAAQ,iBAAU,MAAV;IAJV,CAD0B,EAO1B,iBAAU,MAAV,EACA,iBAAU,KAAV,CAAgB,CAAC,KAAD,CAAhB,CAR0B,CAApB,CAAR;;;;;;;;;;;;;;;;;;;AA4BA,oBAAiB,iBAAU,KAAV,CAAgB;AAC/B,QAAG,iBAAU,MAAV;AACH,QAAG,iBAAU,MAAV;IAFY,CAAjB;;;;;;;;;;;;;;;;;;;;;;AAyBA,aAAU,iBAAU,KAAV,CAAgB;AACxB,QAAG,iBAAU,MAAV;AACH,QAAG,iBAAU,MAAV;IAFK,CAAV;;;;;AAQA;AACA;AACA;;AAhHiB,WAmHZ,4BACF,wBAAc,YAAd;AACH,SAAM,MAAN;AACA,WAAQ,KAAR;AACA,oBAAiB,EAAC,GAAG,CAAH,EAAM,GAAG,CAAH,EAAxB;AACA,aAAU,IAAV;;mBAxHiB,U;;;;;;ACxBrB,gD;;;;;;ACAA,gD;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAgB;;AAEhB;AACA;;AAEA,kBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,EAAC;;;;;;;;;;;;;;;SCxCe;SAkBA;SAYA;SAYA;SAUA;SASA;SAQA;SASA;SAYA;SAKA;SAWA;SAKA;SAKA;;AA1HhB;;AACA;;;;;;;;AAIA,KAAI,sBAAsB,EAAtB;AACG,UAAS,eAAT,CAAyB,EAAzB,EAAmC,QAAnC,EAA8D;AACnE,OAAI,CAAC,mBAAD,EAAsB;AACxB,2BAAsB,wBAAY,CAChC,SADgC,EAEhC,uBAFgC,EAGhC,oBAHgC,EAIhC,mBAJgC,EAKhC,kBALgC,CAAZ,EAMnB,UAAS,MAAT,EAAgB;;AAEjB,cAAO,uBAAW,GAAG,MAAH,CAAX,CAAP,CAFiB;MAAhB,CANH,CADwB;IAA1B;;;AADmE,UAe5D,GAAG,mBAAH,EAAwB,IAAxB,CAA6B,EAA7B,EAAiC,QAAjC,CAAP,CAfmE;EAA9D;;AAkBA,UAAS,QAAT,CAAkB,EAAlB,EAA6B,KAA7B,EAA4C,OAA5C,EAAqE;AAC1E,OAAI,CAAC,EAAD,EAAK;AAAE,YAAF;IAAT;AACA,OAAI,GAAG,WAAH,EAAgB;AAClB,QAAG,WAAH,CAAe,OAAO,KAAP,EAAc,OAA7B,EADkB;IAApB,MAEO,IAAI,GAAG,gBAAH,EAAqB;AAC9B,QAAG,gBAAH,CAAoB,KAApB,EAA2B,OAA3B,EAAoC,IAApC,EAD8B;IAAzB,MAEA;;AAEL,QAAG,OAAO,KAAP,CAAH,GAAmB,OAAnB,CAFK;IAFA;EAJF;;AAYA,UAAS,WAAT,CAAqB,EAArB,EAAgC,KAAhC,EAA+C,OAA/C,EAAwE;AAC7E,OAAI,CAAC,EAAD,EAAK;AAAE,YAAF;IAAT;AACA,OAAI,GAAG,WAAH,EAAgB;AAClB,QAAG,WAAH,CAAe,OAAO,KAAP,EAAc,OAA7B,EADkB;IAApB,MAEO,IAAI,GAAG,mBAAH,EAAwB;AACjC,QAAG,mBAAH,CAAuB,KAAvB,EAA8B,OAA9B,EAAuC,IAAvC,EADiC;IAA5B,MAEA;;AAEL,QAAG,OAAO,KAAP,CAAH,GAAmB,IAAnB,CAFK;IAFA;EAJF;;AAYA,UAAS,WAAT,CAAqB,IAArB,EAAgD;;;AAGrD,OAAI,SAAS,KAAK,YAAL,CAHwC;AAIrD,OAAM,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAJ+C;AAKrD,aAAU,gBAAI,cAAc,cAAd,CAAd,CALqD;AAMrD,aAAU,gBAAI,cAAc,iBAAd,CAAd,CANqD;AAOrD,UAAO,MAAP,CAPqD;EAAhD;;AAUA,UAAS,UAAT,CAAoB,IAApB,EAA+C;;;AAGpD,OAAI,QAAQ,KAAK,WAAL,CAHwC;AAIpD,OAAM,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAJ8C;AAKpD,YAAS,gBAAI,cAAc,eAAd,CAAb,CALoD;AAMpD,YAAS,gBAAI,cAAc,gBAAd,CAAb,CANoD;AAOpD,UAAO,KAAP,CAPoD;EAA/C;AASA,UAAS,WAAT,CAAqB,IAArB,EAAgD;AACrD,OAAI,SAAS,KAAK,YAAL,CADwC;AAErD,OAAM,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAF+C;AAGrD,aAAU,gBAAI,cAAc,UAAd,CAAd,CAHqD;AAIrD,aAAU,gBAAI,cAAc,aAAd,CAAd,CAJqD;AAKrD,UAAO,MAAP,CALqD;EAAhD;;AAQA,UAAS,UAAT,CAAoB,IAApB,EAA+C;AACpD,OAAI,QAAQ,KAAK,WAAL,CADwC;AAEpD,OAAM,gBAAgB,OAAO,gBAAP,CAAwB,IAAxB,CAAhB,CAF8C;AAGpD,YAAS,gBAAI,cAAc,WAAd,CAAb,CAHoD;AAIpD,YAAS,gBAAI,cAAc,YAAd,CAAb,CAJoD;AAKpD,UAAO,KAAP,CALoD;EAA/C;;;AASA,UAAS,oBAAT,CAA8B,CAA9B,EAA6C,IAA7C,EAA+G;AACpH,OAAM,MAAM,EAAE,aAAF,GAAkB,EAAE,aAAF,CAAgB,CAAhB,CAAlB,GAAuC,CAAvC,CADwG;;AAGpH,OAAM,eAAe,KAAK,YAAL,IAAqB,SAAS,IAAT,CAH0E;AAIpH,OAAM,mBAAmB,KAAK,YAAL,KAAsB,SAAS,IAAT,GAAgB,EAAC,MAAM,CAAN,EAAS,KAAK,CAAL,EAAhD,GAA0D,aAAa,qBAAb,EAA1D,CAJ2F;;AAMpH,OAAM,IAAI,IAAI,OAAJ,GAAc,aAAa,UAAb,GAA0B,iBAAiB,IAAjB,CANkE;AAOpH,OAAM,IAAI,IAAI,OAAJ,GAAc,aAAa,SAAb,GAAyB,iBAAiB,GAAjB,CAPmE;;AASpH,UAAO,EAAC,IAAD,EAAI,IAAJ,EAAP,CAToH;EAA/G;;AAYA,UAAS,kBAAT,OAAoE;OAAvC,WAAuC;OAApC,WAAoC;;;AAEzE,8BAAS,mCAAmB,WAAnB,wBAAiD,eAAe,CAAf,GAAmB,KAAnB,GAA2B,CAA3B,GAA+B,KAA/B,CAA1D,CAFyE;EAApE;;AAKA,UAAS,kBAAT,QAAoE;OAAvC,YAAuC;OAApC,YAAoC;;AACzE,UAAO,eAAe,CAAf,GAAmB,GAAnB,GAAyB,CAAzB,GAA6B,GAA7B,CADkE;EAApE;;;;;AAOP,KAAM,mBAAmB,0BAAU,aAAV,CAAnB;AACN,KAAM,aAAa,qCAAqB,aAArB,EAAoC,gBAApC,CAAb;AACN,KAAM,wBAAsB,sBAAtB;;AAEC,UAAS,mBAAT,GAA+B;AACpC,OAAM,QAAQ,SAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,KAAuC,EAAvC,CADsB;AAEpC,YAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,EAAoC,QAAQ,eAAR,CAApC,CAFoC;EAA/B;;AAKA,UAAS,sBAAT,GAAkC;AACvC,OAAM,QAAQ,SAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,KAAuC,EAAvC,CADyB;AAEvC,YAAS,IAAT,CAAc,YAAd,CAA2B,OAA3B,EAAoC,MAAM,OAAN,CAAc,eAAd,EAA+B,EAA/B,CAApC,EAFuC;EAAlC;;AAKA,UAAS,UAAT,GAAqD;OAAjC,mEAAqB,kBAAY;;;;AAG1D;AACE,kBAAa,MAAb;MACG,WAFL,CAH0D;;;;;;;;;;;;SCzH5C;SAMA;SAIA;SAIA;SAIA;;;AAlBT,UAAS,WAAT,CAAqB,KAArB,EAAwC,QAAxC,EAAiE;AACtE,QAAK,IAAI,IAAI,CAAJ,EAAO,SAAS,MAAM,MAAN,EAAc,IAAI,MAAJ,EAAY,GAAnD,EAAwD;AACtD,SAAI,SAAS,KAAT,CAAe,QAAf,EAAyB,CAAC,MAAM,CAAN,CAAD,EAAW,CAAX,EAAc,KAAd,CAAzB,CAAJ,EAAoD,OAAO,MAAM,CAAN,CAAP,CAApD;IADF;EADK;;AAMA,UAAS,UAAT,CAAoB,IAApB,EAAwC;AAC7C,UAAO,OAAO,IAAP,KAAgB,UAAhB,IAA8B,OAAO,SAAP,CAAiB,QAAjB,CAA0B,IAA1B,CAA+B,IAA/B,MAAyC,mBAAzC,CADQ;EAAxC;;AAIA,UAAS,KAAT,CAAe,GAAf,EAAkC;AACvC,UAAO,OAAO,GAAP,KAAe,QAAf,IAA2B,CAAC,MAAM,GAAN,CAAD,CADK;EAAlC;;AAIA,UAAS,GAAT,CAAa,CAAb,EAAgC;AACrC,UAAO,SAAS,CAAT,EAAY,EAAZ,CAAP,CADqC;EAAhC;;AAIA,UAAS,SAAT,CAAmB,KAAnB,EAAkC,QAAlC,EAAoD,aAApD,EAA2E;AAChF,OAAI,MAAM,QAAN,CAAJ,EAAqB;AACnB,YAAO,IAAI,KAAJ,mBAA0B,2BAAsB,0DAAhD,CAAP,CADmB;IAArB;;;;;;;;;;;;SCnBc;SAiBA;SAIA;;AAtBhB,KAAM,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAX;AACC,UAAS,SAAT,GAAqD;OAAlC,6DAAa,2BAAqB;;;;;AAI1D,OAAI,OAAO,MAAP,KAAkB,WAAlB,IAAiC,OAAO,OAAO,QAAP,KAAoB,WAA3B,EAAwC,OAAO,EAAP,CAA7E;;AAEA,OAAM,QAAQ,OAAO,QAAP,CAAgB,eAAhB,CAAgC,KAAhC,CAN4C;;AAQ1D,OAAI,QAAQ,KAAR,EAAe,OAAO,EAAP,CAAnB;;AAEA,QAAK,IAAI,IAAI,CAAJ,EAAO,IAAI,SAAS,MAAT,EAAiB,GAArC,EAA0C;AACxC,SAAI,mBAAmB,IAAnB,EAAyB,SAAS,CAAT,CAAzB,KAAyC,KAAzC,EAAgD,OAAO,SAAS,CAAT,CAAP,CAApD;IADF;;AAIA,UAAO,EAAP,CAd0D;EAArD;;AAiBA,UAAS,kBAAT,CAA4B,IAA5B,EAA0C,MAA1C,EAAkE;AACvE,UAAO,cAAY,SAAS,iBAAiB,IAAjB,CAArB,GAAgD,IAAhD,CADgE;EAAlE;;AAIA,UAAS,oBAAT,CAA8B,IAA9B,EAA4C,MAA5C,EAAoE;AACzE,UAAO,eAAa,OAAO,WAAP,WAAwB,IAArC,GAA8C,IAA9C,CADkE;EAApE;;AAIP,UAAS,gBAAT,CAA0B,GAA1B,EAA+C;AAC7C,OAAI,MAAM,EAAN,CADyC;AAE7C,OAAI,mBAAmB,IAAnB,CAFyC;AAG7C,QAAK,IAAI,IAAI,CAAJ,EAAO,IAAI,IAAI,MAAJ,EAAY,GAAhC,EAAqC;AACnC,SAAI,gBAAJ,EAAsB;AACpB,cAAO,IAAI,CAAJ,EAAO,WAAP,EAAP,CADoB;AAEpB,0BAAmB,KAAnB,CAFoB;MAAtB,MAGO,IAAI,IAAI,CAAJ,MAAW,GAAX,EAAgB;AACzB,0BAAmB,IAAnB,CADyB;MAApB,MAEA;AACL,cAAO,IAAI,CAAJ,CAAP,CADK;MAFA;IAJT;AAUA,UAAO,GAAP,CAb6C;EAA/C;;;;;mBAmBe,Y;;;;;;;;;;;SCrCC;SAyCA;SAMA;SAIA;SAKA;SAKA;SAyBA;;AA9FhB;;AACA;;;;AACA;;;;AAMO,UAAS,gBAAT,CAA0B,SAA1B,EAAgD,CAAhD,EAA2D,CAA3D,EAAwF;;AAE7F,OAAI,CAAC,UAAU,KAAV,CAAgB,MAAhB,EAAwB,OAAO,CAAC,CAAD,EAAI,CAAJ,CAAP,CAA7B;;;AAF6F,OAKxF,SAAU,UAAU,KAAV,CAAV,OALwF;;AAM7F,YAAS,OAAO,MAAP,KAAkB,QAAlB,GAA6B,MAA7B,GAAsC,YAAY,MAAZ,CAAtC,CANoF;AAO7F,OAAM,OAAO,mBAAS,WAAT,CAAqB,SAArB,CAAP,CAPuF;;AAS7F,OAAI,OAAO,MAAP,KAAkB,QAAlB,EAA4B;AAC9B,SAAI,kBAAJ,CAD8B;AAE9B,SAAI,WAAW,QAAX,EAAqB;AACvB,mBAAY,KAAK,UAAL,CADW;MAAzB,MAEO;AACL,mBAAY,SAAS,aAAT,CAAuB,MAAvB,CAAZ,CADK;AAEL,WAAI,CAAC,SAAD,EAAY,MAAM,IAAI,KAAJ,CAAU,sBAAsB,MAAtB,GAA+B,8BAA/B,CAAhB,CAAhB;MAJF;AAMA,SAAM,YAAY,OAAO,gBAAP,CAAwB,IAAxB,CAAZ,CARwB;AAS9B,SAAM,iBAAiB,OAAO,gBAAP,CAAwB,SAAxB,CAAjB;;AATwB,WAW9B,GAAS;AACP,aAAM,CAAC,KAAK,UAAL,GAAkB,gBAAI,eAAe,WAAf,CAAvB,GACA,gBAAI,UAAU,eAAV,CADJ,GACiC,gBAAI,UAAU,UAAV,CADrC;AAEN,YAAK,CAAC,KAAK,SAAL,GAAiB,gBAAI,eAAe,UAAf,CAAtB,GACC,gBAAI,UAAU,cAAV,CADL,GACiC,gBAAI,UAAU,SAAV,CADrC;AAEL,cAAO,wBAAW,SAAX,IAAwB,wBAAW,IAAX,CAAxB,GAA2C,KAAK,UAAL;AAClD,eAAQ,yBAAY,SAAZ,IAAyB,yBAAY,IAAZ,CAAzB,GAA6C,KAAK,SAAL;MANvD,CAX8B;IAAhC;;;AAT6F,OA+BzF,kBAAM,OAAO,KAAP,CAAV,EAAyB,IAAI,KAAK,GAAL,CAAS,CAAT,EAAY,OAAO,KAAP,CAAhB,CAAzB;AACA,OAAI,kBAAM,OAAO,MAAP,CAAV,EAA0B,IAAI,KAAK,GAAL,CAAS,CAAT,EAAY,OAAO,MAAP,CAAhB,CAA1B;;;AAhC6F,OAmCzF,kBAAM,OAAO,IAAP,CAAV,EAAwB,IAAI,KAAK,GAAL,CAAS,CAAT,EAAY,OAAO,IAAP,CAAhB,CAAxB;AACA,OAAI,kBAAM,OAAO,GAAP,CAAV,EAAuB,IAAI,KAAK,GAAL,CAAS,CAAT,EAAY,OAAO,GAAP,CAAhB,CAAvB;;AAEA,UAAO,CAAC,CAAD,EAAI,CAAJ,CAAP,CAtC6F;EAAxF;;AAyCA,UAAS,UAAT,CAAoB,IAApB,EAA4C,QAA5C,EAA8D,QAA9D,EAAkG;AACvG,OAAM,IAAI,KAAK,KAAL,CAAW,WAAW,KAAK,CAAL,CAAX,CAAX,GAAiC,KAAK,CAAL,CAAjC,CAD6F;AAEvG,OAAM,IAAI,KAAK,KAAL,CAAW,WAAW,KAAK,CAAL,CAAX,CAAX,GAAiC,KAAK,CAAL,CAAjC,CAF6F;AAGvG,UAAO,CAAC,CAAD,EAAI,CAAJ,CAAP,CAHuG;EAAlG;;AAMA,UAAS,QAAT,CAAkB,SAAlB,EAAiD;AACtD,UAAO,UAAU,KAAV,CAAgB,IAAhB,KAAyB,MAAzB,IAAmC,UAAU,KAAV,CAAgB,IAAhB,KAAyB,GAAzB,CADY;EAAjD;;AAIA,UAAS,QAAT,CAAkB,SAAlB,EAAiD;AACtD,UAAO,UAAU,KAAV,CAAgB,IAAhB,KAAyB,MAAzB,IAAmC,UAAU,KAAV,CAAgB,IAAhB,KAAyB,GAAzB,CADY;EAAjD;;;AAKA,UAAS,kBAAT,CAA4B,CAA5B,EAA2C,aAA3C,EAA0F;AAC/F,UAAO,kCAAqB,CAArB,EAAwB,mBAAS,WAAT,CAAqB,aAArB,CAAxB,CAAP,CAD+F;EAA1F;;;AAKA,UAAS,cAAT,CAAwB,SAAxB,EAAkD,CAAlD,EAA6D,CAA7D,EAAuF;;AAE5F,OAAM,QAAQ,UAAU,aAAV,IAA2B,UAAU,KAAV,CAFmD;AAG5F,OAAM,UAAU,CAAC,kBAAM,MAAM,KAAN,CAAP,CAH4E;;AAK5F,OAAI,OAAJ,EAAa;;AAEX,YAAO;AACL,aAAM,mBAAS,WAAT,CAAqB,IAArB,CAAN;AACA,eAAQ,CAAR,EAAW,QAAQ,CAAR;AACX,cAAO,CAAP,EAAU,OAAO,CAAP;AACV,UAAG,CAAH,EAAM,GAAG,CAAH;MAJR,CAFW;IAAb,MAQO;;AAEL,YAAO;AACL,aAAM,mBAAS,WAAT,CAAqB,IAArB,CAAN;AACA,eAAQ,IAAI,MAAM,KAAN,EAAa,QAAQ,IAAI,MAAM,KAAN;AACrC,cAAO,MAAM,KAAN,EAAa,OAAO,MAAM,KAAN;AAC3B,UAAG,CAAH,EAAM,GAAG,CAAH;MAJR,CAFK;IARP;EALK;;;AAyBA,UAAS,mBAAT,CAA6B,SAA7B,EAAmD,QAAnD,EAA2F;AAChG,UAAO;AACL,WAAM,SAAS,IAAT;AACN,QAAG,UAAU,KAAV,CAAgB,CAAhB,GAAoB,SAAS,MAAT;AACvB,QAAG,UAAU,KAAV,CAAgB,CAAhB,GAAoB,SAAS,MAAT;AACvB,aAAQ,SAAS,MAAT;AACR,aAAQ,SAAS,MAAT;AACR,YAAO,UAAU,KAAV,CAAgB,CAAhB;AACP,YAAO,UAAU,KAAV,CAAgB,CAAhB;IAPT,CADgG;EAA3F;;;AAaP,UAAS,WAAT,CAAqB,MAArB,EAA6C;AAC3C,UAAO;AACL,WAAM,OAAO,IAAP;AACN,UAAK,OAAO,GAAP;AACL,YAAO,OAAO,KAAP;AACP,aAAQ,OAAO,MAAP;IAJV,CAD2C;;;;;;;;;;;;;;;;;AC3G7C;;;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;AAKA,KAAM,YAAY;AAChB,UAAO;AACL,YAAO,YAAP;AACA,WAAM,WAAN;AACA,WAAM,UAAN;IAHF;AAKA,UAAO;AACL,YAAO,WAAP;AACA,WAAM,WAAN;AACA,WAAM,SAAN;IAHF;EANI;;;AAcN,KAAI,eAAe,UAAU,KAAV;;;;;;;;;KAgBE;;;;;;;;;;;;;;4MAyHnB,QAAmB;AACjB,iBAAU,KAAV;;AAEA,cAAO,GAAP,EAAY,OAAO,GAAP;AACZ,wBAAiB,GAAjB;cAaF,kBAA4C,UAAC,CAAD,EAAO;;AAEjD,aAAK,KAAL,CAAW,WAAX,CAAuB,CAAvB;;;AAFiD,WAK7C,CAAC,MAAK,KAAL,CAAW,aAAX,IAA4B,OAAO,EAAE,MAAF,KAAa,QAApB,IAAgC,EAAE,MAAF,KAAa,CAAb,EAAgB,OAAO,KAAP,CAAjF;;;AALiD,WAQ7C,MAAK,KAAL,CAAW,QAAX,IACD,EAAE,EAAE,MAAF,YAAoB,IAApB,CAAF,IACA,MAAK,KAAL,CAAW,MAAX,IAAqB,CAAC,6BAAgB,EAAE,MAAF,EAAU,MAAK,KAAL,CAAW,MAAX,CAA3B,IACrB,MAAK,KAAL,CAAW,MAAX,IAAqB,6BAAgB,EAAE,MAAF,EAAU,MAAK,KAAL,CAAW,MAAX,CAA/C,EAAoE;AACrE,gBADqE;QAHvE;;;;;AARiD,WAkB7C,EAAE,aAAF,EAAgB;AAClB,eAAK,QAAL,CAAc,EAAC,iBAAiB,EAAE,aAAF,CAAgB,CAAhB,EAAmB,UAAnB,EAAhC,EADkB;QAApB;;;;AAlBiD,WAwB7C,MAAK,KAAL,CAAW,oBAAX,EAAiC,mCAArC;;;AAxBiD;iCA2BlC,qCAAmB,CAAnB,SA3BkC;;WA2B1C,0BA3B0C;WA2BvC;;;AA3BuC;AA8BjD,WAAM,YAAY,wCAAqB,CAArB,EAAwB,CAAxB,CAAZ,CA9B2C;;AAgCjD,0BAAI,oCAAJ,EAA0C,SAA1C;;;AAhCiD,yBAmCjD,CAAI,SAAJ,EAAe,MAAK,KAAL,CAAW,OAAX,CAAf,CAnCiD;AAoCjD,WAAM,eAAe,MAAK,KAAL,CAAW,OAAX,CAAmB,CAAnB,EAAsB,SAAtB,CAAf,CApC2C;AAqCjD,WAAI,iBAAiB,KAAjB,EAAwB,OAA5B;;;;;AArCiD,YA2CjD,CAAK,QAAL,CAAc;AACZ,mBAAU,IAAV;;AAEA,gBAAO,CAAP;AACA,gBAAO,CAAP;QAJF;;;;;AA3CiD,4BAqDjD,CAAS,QAAT,EAAmB,aAAa,IAAb,EAAmB,MAAK,UAAL,CAAtC,CArDiD;AAsDjD,6BAAS,QAAT,EAAmB,aAAa,IAAb,EAAmB,MAAK,cAAL,CAAtC,CAtDiD;MAAP,QAyD5C,aAAuC,UAAC,CAAD,EAAO;;AAE5C,WAAI,EAAE,aAAF,IAAoB,EAAE,aAAF,CAAgB,CAAhB,EAAmB,UAAnB,KAAkC,MAAK,KAAL,CAAW,eAAX,EAA6B,OAAvF;;kCAEa,qCAAmB,CAAnB,SAJ+B;;WAIvC,2BAJuC;WAIpC;;;AAJoC;AAO5C,WAAI,MAAM,OAAN,CAAc,MAAK,KAAL,CAAW,IAAX,CAAlB,EAAoC;AAClC,aAAI,SAAS,IAAI,MAAK,KAAL,CAAW,KAAX;aAAkB,SAAS,IAAI,MAAK,KAAL,CAAW,KAAX,CADd;;2BAEf,6BAAW,MAAK,KAAL,CAAW,IAAX,EAAiB,MAA5B,EAAoC,MAApC,EAFe;;;;AAEjC,kCAFiC;AAEzB,kCAFyB;;AAGlC,aAAI,CAAC,MAAD,IAAW,CAAC,MAAD,EAAS,OAAxB;AAHkC,UAIlC,GAAI,MAAK,KAAL,CAAW,KAAX,GAAmB,MAAnB,EAA2B,IAAI,MAAK,KAAL,CAAW,KAAX,GAAmB,MAAnB,CAJD;QAApC;;AAOA,WAAM,YAAY,wCAAqB,CAArB,EAAwB,CAAxB,CAAZ,CAdsC;;AAgB5C,0BAAI,+BAAJ,EAAqC,SAArC;;;AAhB4C,WAmBtC,eAAe,MAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,SAArB,CAAf,CAnBsC;AAoB5C,WAAI,iBAAiB,KAAjB,EAAwB;AAC1B,eAAK,cAAL,CAAoB,IAAI,UAAJ,EAApB,EAD0B;AAE1B,gBAF0B;QAA5B;;AAKA,aAAK,QAAL,CAAc;AACZ,gBAAO,CAAP;AACA,gBAAO,CAAP;QAFF,EAzB4C;MAAP,QA+BvC,iBAA2C,UAAC,CAAD,EAAO;AAChD,WAAI,CAAC,MAAK,KAAL,CAAW,QAAX,EAAqB,OAA1B;;;;AADgD,WAK5C,EAAE,cAAF,IAAqB,EAAE,cAAF,CAAiB,CAAjB,EAAoB,UAApB,KAAmC,MAAK,KAAL,CAAW,eAAX,EAA6B,OAAzF;;;AALgD,WAQ5C,MAAK,KAAL,CAAW,oBAAX,EAAiC,sCAArC;;kCAEe,qCAAmB,CAAnB,SAViC;;WAUzC,2BAVyC;WAUtC,2BAVsC;;AAWhD,WAAM,YAAY,wCAAqB,CAArB,EAAwB,CAAxB,CAAZ,CAX0C;;AAahD,0BAAI,mCAAJ,EAAyC,SAAzC;;;AAbgD,YAgBhD,CAAK,QAAL,CAAc;AACZ,mBAAU,KAAV;AACA,gBAAO,GAAP;AACA,gBAAO,GAAP;QAHF;;;AAhBgD,YAuBhD,CAAK,KAAL,CAAW,MAAX,CAAkB,CAAlB,EAAqB,SAArB;;;AAvBgD,yBA0BhD,CAAI,kCAAJ,EA1BgD;AA2BhD,gCAAY,QAAZ,EAAsB,aAAa,IAAb,EAAmB,MAAK,UAAL,CAAzC,CA3BgD;AA4BhD,gCAAY,QAAZ,EAAsB,aAAa,IAAb,EAAmB,MAAK,cAAL,CAAzC,CA5BgD;MAAP,QA+B3C,cAAwC,UAAC,CAAD,EAAO;AAC7C,sBAAe,UAAU,KAAV;;AAD8B,cAGtC,MAAK,eAAL,CAAqB,CAArB,CAAP,CAH6C;MAAP,QAMxC,YAAsC,UAAC,CAAD,EAAO;AAC3C,sBAAe,UAAU,KAAV,CAD4B;;AAG3C,cAAO,MAAK,cAAL,CAAoB,CAApB,CAAP,CAH2C;MAAP,QAOtC,eAAyC,UAAC,CAAD,EAAO;;AAE9C,sBAAe,UAAU,KAAV,CAF+B;;AAI9C,cAAO,MAAK,eAAL,CAAqB,CAArB,CAAP,CAJ8C;MAAP,QAOzC,aAAuC,UAAC,CAAD,EAAO;;AAE5C,sBAAe,UAAU,KAAV,CAF6B;;AAI5C,cAAO,MAAK,cAAL,CAAoB,CAApB,CAAP,CAJ4C;MAAP;;;gBArRpB;;4CAgII;;;AAGrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,UAAL,CAA5C,CAHqB;AAIrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,UAAL,CAA5C,CAJqB;AAKrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,cAAL,CAA5C,CALqB;AAMrB,gCAAY,QAAZ,EAAsB,UAAU,KAAV,CAAgB,IAAhB,EAAsB,KAAK,cAAL,CAA5C,CANqB;AAOrB,WAAI,KAAK,KAAL,CAAW,oBAAX,EAAiC,sCAArC;;;;;;;8BAqJsB;;;AAGtB,cAAO,gBAAM,YAAN,CAAmB,gBAAM,QAAN,CAAe,IAAf,CAAoB,KAAK,KAAL,CAAW,QAAX,CAAvC,EAA6D;AAClE,gBAAO,wBAAW,KAAK,KAAL,CAAW,QAAX,CAAoB,KAApB,CAA0B,KAA1B,CAAlB;;;;AAIA,sBAAa,KAAK,WAAL;AACb,uBAAc,KAAK,YAAL;AACd,oBAAW,KAAK,SAAL;AACX,qBAAY,KAAK,UAAL;QARP,CAAP,CAHsB;;;;UA5RL;GAAsB,gBAAM,SAAN;;AAAtB,eAEZ,cAAc;AAFF,eAIZ,YAAY;;;;;;;AAOjB,kBAAe,iBAAU,IAAV;;;;;;AAMf,aAAU,iBAAU,IAAV;;;;;;;AAOV,yBAAsB,iBAAU,IAAV;;;;;AAKtB,SAAM,iBAAU,OAAV,CAAkB,iBAAU,MAAV,CAAxB;;;;;;;;;;;;;;;;;;;;;;AAsBA,WAAQ,iBAAU,MAAV;;;;;;;;;;;;;;;;;;;;;;AAsBR,WAAQ,iBAAU,MAAV;;;;;;AAMR,YAAS,iBAAU,IAAV;;;;;;AAMT,WAAQ,iBAAU,IAAV;;;;;;AAMR,WAAQ,iBAAU,IAAV;;;;;;AAMR,gBAAa,iBAAU,IAAV;;;;;AAKb,8BAlGiB;AAmGjB,0BAnGiB;AAoGjB,8BApGiB;;AAJA,eA2GZ,eAAe;AACpB,kBAAe,KAAf;AACA,WAAQ,IAAR;AACA,aAAU,KAAV;AACA,yBAAsB,IAAtB;AACA,WAAQ,IAAR;AACA,SAAM,IAAN;AACA,cAAW,IAAX;AACA,YAAS,mBAAU,EAAV;AACT,WAAQ,kBAAU,EAAV;AACR,WAAQ,kBAAU,EAAV;AACR,gBAAa,uBAAU,EAAV;;mBAtHI,c;;;;;;;;;;;mBCvCG;;;AAAT,UAAS,GAAT,GAA2B;;;AACxC,OAAI,aAA6B,qBAAQ,GAAR,4BAAjC","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 45868ded4cb7860818c0\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: this.props.position ? this.props.position.x : this.props.defaultPosition.x,\n y: this.props.position ? this.props.position.y : this.props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 86cfb87454ce28d2978b",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 86cfb87454ce28d2978b\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: this.props.position ? this.props.position.x : this.props.defaultPosition.x,\n y: this.props.position ? this.props.position.y : this.props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 34b5bd43..7c612da6 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 45868ded4cb7860818c0","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","x","_this","props","position","defaultPosition","y","slackX","slackY","isElementSVG","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","onDrag","uiData","newState","bounds","_x","_y","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","_x2","_this$props$position","_y2","_temp","_possibleConstructorReturn","_ret","console","warn","_reactDom2","findDOMNode","SVGElement","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","enableUserSelectHack","_getControlPosition","coreEvent","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 86cfb87454ce28d2978b","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","x","_this","props","position","defaultPosition","y","slackX","slackY","isElementSVG","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","onDrag","uiData","newState","bounds","_x","_y","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","_x2","_this$props$position","_y2","_temp","_possibleConstructorReturn","_ret","console","warn","_reactDom2","findDOMNode","SVGElement","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","enableUserSelectHack","_getControlPosition","coreEvent","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index d3515a34..9b114d00 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.0-beta2", + "version": "2.0.0-beta3", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From ad7bd20b2c92334f9e8b5363730cd0dcd7f49c97 Mon Sep 17 00:00:00 2001 From: David Stubbs Date: Wed, 20 Apr 2016 14:14:31 +0100 Subject: [PATCH 174/412] Only apply user-select hack if drag is started Previously the user-select hack is applied whenever mouseDown on an element matching the selector, with the right kind of click. But if the onStart method returns false then the drag is aborted, but the user-select hack is still applied. Because the drag is not running the hack is not unapplied on mouseUp. This leads to a whole series of ";user-select: none;; user-select: none;; ..." appearing on the body tag and the inability to select text on the page until a valid drag happens. This commit moves the hack application to after the last short circuit to ensure dragging is actually happening. --- example/index.html | 3 +++ lib/DraggableCore.es6 | 7 +++---- specs/draggable.spec.jsx | 18 ++++++++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/example/index.html b/example/index.html index 2de857a7..69b224cf 100644 --- a/example/index.html +++ b/example/index.html @@ -135,6 +135,9 @@

React Draggable

I can only be dragged vertically
+ false}> +
I don't want to be dragged
+
I track my deltas
diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 0539059b..898bd618 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -199,10 +199,6 @@ export default class DraggableCore extends React.Component { this.setState({touchIdentifier: e.targetTouches[0].identifier}); } - // Add a style to the body to disable user-select. This prevents text from - // being selected all over the page. - if (this.props.enableUserSelectHack) addUserSelectStyles(); - // Get the current drag point from the event. This is used as the offset. const {x, y} = getControlPosition(e, this); @@ -216,6 +212,9 @@ export default class DraggableCore extends React.Component { const shouldUpdate = this.props.onStart(e, coreEvent); if (shouldUpdate === false) return; + // Add a style to the body to disable user-select. This prevents text from + // being selected all over the page. + if (this.props.enableUserSelectHack) addUserSelectStyles(); // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 822b2417..c0c741f8 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -301,6 +301,24 @@ describe('react-draggable', function () { TestUtils.Simulate.mouseUp(node); expect(document.body.getAttribute('style')).toEqual(''); }); + + it('should not add and remove user-select styles when onStart returns false', function () { + function onStart() { return false; } + + drag = TestUtils.renderIntoDocument( + +
+ + ); + + var node = ReactDOM.findDOMNode(drag); + + expect(document.body.getAttribute('style')).toEqual(''); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + expect(document.body.getAttribute('style')).toEqual(''); + TestUtils.Simulate.mouseUp(node); + expect(document.body.getAttribute('style')).toEqual(''); + }); }); describe('interaction', function () { From e67b8910d6090f65e92b839e094f5e015d813f3e Mon Sep 17 00:00:00 2001 From: Marcio Puga Date: Wed, 4 May 2016 12:21:05 +0100 Subject: [PATCH 175/412] typo fixed --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 699f0ea0..40e3a540 100644 --- a/README.md +++ b/README.md @@ -218,7 +218,7 @@ to programmatically reposition their components. `` allows this custo is similar to how React handles form components. If the prop `position: {x: number, y: number}` is defined, the `` will ignore its internal state and use -the provided position instead. Altneratively, you can seed the position using `defaultPosition`. Technically, since +the provided position instead. Alternatively, you can seed the position using `defaultPosition`. Technically, since `` works only on position deltas, you could also seed the initial position using CSS `top/left`. We make one modification to the React philosophy here - we still allow dragging while a component is controlled. From 1d532b7798ed8b6574a0444f8e270d7b20103b27 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 May 2016 07:09:20 -0500 Subject: [PATCH 176/412] Don't assume global SVGElement exists. Fixes #123 --- lib/Draggable.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index 137b09c0..33c4baf1 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -174,7 +174,7 @@ export default class Draggable extends React.Component { componentDidMount() { // Check to see if the element passed is an instanceof SVGElement - if(ReactDOM.findDOMNode(this) instanceof SVGElement) { + if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) { this.setState({ isElementSVG: true }); } } From faac254338378c14b34e08df7999b190ec32fe2a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 May 2016 07:09:54 -0500 Subject: [PATCH 177/412] Fix flow type in 0.24 --- lib/utils/types.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/types.es6 b/lib/utils/types.es6 index 3ad2ac6a..a654e192 100644 --- a/lib/utils/types.es6 +++ b/lib/utils/types.es6 @@ -13,4 +13,4 @@ export type Bounds = { left: number, top: number, right: number, bottom: number }; export type ControlPosition = {x: number, y: number}; -export type EventHandler = (e: T) => void; +export type EventHandler = (e: T) => void | false; From 16205ce96ae624ec95323c45ec72bba0302b37fb Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 May 2016 07:13:31 -0500 Subject: [PATCH 178/412] release v2.0.0 --- CHANGELOG.md | 10 +++++++++- bower.json | 2 +- dist/react-draggable.js | 13 +++++++------ dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 21 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14d1b859..44c46294 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### 2.0.0 + +- This is a breaking change. See the changes below in the beta releases. + - Note the changes to event callbacks and `position` / `defaultPosition`. +- Changes from 2.0.0-beta3: + - Small bugfixes for Flow 0.24 compatibility. + - Don't assume `global.SVGElement`. Fixes JSDOM & [#123](https://github.com/mzabriskie/react-draggable/issues/123). + ### 2.0.0-beta3 (Apr 19, 2016) - Flow comments are now in the build. Other projects, such as React-Grid-Layout and React-Resizable, will @@ -10,7 +18,7 @@ - We're making a small deviation from React Core's controlled vs. uncontrolled scheme; for convenience, ``s with a `position` property will still be draggable, but will revert to their old position on drag stop. Attach an `onStop` or `onDrag` handler to synchronize state. - - A warning has been added informing users of this. If you make `` controlled but no callback + - A warning has been added informing users of this. If you make `` controlled but attach no callback handlers, a warning will be printed. ### 2.0.0-beta1 (Apr 14, 2016) diff --git a/bower.json b/bower.json index 88571e82..8d6f2ebd 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.0-beta3", + "version": "2.0.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 7441c8f0..be62c5b3 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -63,7 +63,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ function(module, exports, __webpack_require__) { - 'use strict'; + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; Object.defineProperty(exports, "__esModule", { value: true @@ -259,7 +259,7 @@ return /******/ (function(modules) { // webpackBootstrap key: 'componentDidMount', value: function componentDidMount() { // Check to see if the element passed is an instanceof SVGElement - if (_reactDom2.default.findDOMNode(this) instanceof SVGElement) { + if (typeof global.SVGElement !== 'undefined' && _reactDom2.default.findDOMNode(this) instanceof global.SVGElement) { this.setState({ isElementSVG: true }); } } @@ -441,6 +441,7 @@ return /******/ (function(modules) { // webpackBootstrap position: null }); exports.default = Draggable; + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, /* 2 */ @@ -1023,10 +1024,6 @@ return /******/ (function(modules) { // webpackBootstrap _this.setState({ touchIdentifier: e.targetTouches[0].identifier }); } - // Add a style to the body to disable user-select. This prevents text from - // being selected all over the page. - if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(); - // Get the current drag point from the event. This is used as the offset. var _getControlPosition = (0, _positionFns.getControlPosition)(e, _this); @@ -1045,6 +1042,10 @@ return /******/ (function(modules) { // webpackBootstrap var shouldUpdate = _this.props.onStart(e, coreEvent); if (shouldUpdate === false) return; + // Add a style to the body to disable user-select. This prevents text from + // being selected all over the page. + if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(); + // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us // to drag elements around even if they have been moved, without issue. diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index af742507..b17c1662 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 86cfb87454ce28d2978b",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 86cfb87454ce28d2978b\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: this.props.position ? this.props.position.x : this.props.defaultPosition.x,\n y: this.props.position ? this.props.position.y : this.props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 38a26582b0c1b53423c1",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 38a26582b0c1b53423c1\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: this.props.position ? this.props.position.x : this.props.defaultPosition.x,\n y: this.props.position ? this.props.position.y : this.props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index df056d1a..940408a1 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,x:_this.props.position?_this.props.position.x:_this.props.defaultPosition.x,y:_this.props.position?_this.props.position.y:_this.props.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreData){(0,_log2["default"])("Draggable: onDragStart: %j",coreData);var shouldStart=_this.props.onStart(e,(0,_positionFns.createDraggableData)(_this,coreData));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreData){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreData);var uiData=(0,_positionFns.createDraggableData)(_this,coreData),newState={x:uiData.x,y:uiData.y};if(_this.props.bounds){var _x=newState.x,_y=newState.y;newState.x+=_this.state.slackX,newState.y+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.x,newState.y),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.x=_getBoundPosition2[0],newState.y=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_x-newState.x),newState.slackY=_this.state.slackY+(_y-newState.y),uiData.x=_x,uiData.y=_y,uiData.deltaX=newState.x-_this.state.x,uiData.deltaY=newState.y-_this.state.y}var shouldUpdate=_this.props.onDrag(e,uiData);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreData){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_positionFns.createDraggableData)(_this,coreData));if(shouldStop===!1)return!1;(0,_log2["default"])("Draggable: onDragStop: %j",coreData);var newState={dragging:!1,slackX:0,slackY:0},controlled=Boolean(_this.props.position);if(controlled){var _this$props$position=_this.props.position,_x2=_this$props$position.x,_y2=_this$props$position.y;newState.x=_x2,newState.y=_y2}_this.setState(newState)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){_reactDom2["default"].findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:NaN},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier}),_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)();var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,x:_this.props.position?_this.props.position.x:_this.props.defaultPosition.x,y:_this.props.position?_this.props.position.y:_this.props.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreData){(0,_log2["default"])("Draggable: onDragStart: %j",coreData);var shouldStart=_this.props.onStart(e,(0,_positionFns.createDraggableData)(_this,coreData));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreData){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreData);var uiData=(0,_positionFns.createDraggableData)(_this,coreData),newState={x:uiData.x,y:uiData.y};if(_this.props.bounds){var _x=newState.x,_y=newState.y;newState.x+=_this.state.slackX,newState.y+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.x,newState.y),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.x=_getBoundPosition2[0],newState.y=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_x-newState.x),newState.slackY=_this.state.slackY+(_y-newState.y),uiData.x=_x,uiData.y=_y,uiData.deltaX=newState.x-_this.state.x,uiData.deltaY=newState.y-_this.state.y}var shouldUpdate=_this.props.onDrag(e,uiData);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreData){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_positionFns.createDraggableData)(_this,coreData));if(shouldStop===!1)return!1;(0,_log2["default"])("Draggable: onDragStop: %j",coreData);var newState={dragging:!1,slackX:0,slackY:0},controlled=Boolean(_this.props.position);if(controlled){var _this$props$position=_this.props.position,_x2=_this$props$position.x,_y2=_this$props$position.y;newState.x=_x2,newState.y=_y2}_this.setState(newState)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:NaN},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier});var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 7c612da6..d9bca200 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 86cfb87454ce28d2978b","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","x","_this","props","position","defaultPosition","y","slackX","slackY","isElementSVG","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","onDrag","uiData","newState","bounds","_x","_y","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","_x2","_this$props$position","_y2","_temp","_possibleConstructorReturn","_ret","console","warn","_reactDom2","findDOMNode","SVGElement","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","enableUserSelectHack","_getControlPosition","coreEvent","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 38a26582b0c1b53423c1","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","x","_this","props","position","defaultPosition","y","slackX","slackY","isElementSVG","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","onDrag","uiData","newState","bounds","_x","_y","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","_x2","_this$props$position","_y2","_temp","_possibleConstructorReturn","_ret","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","_getControlPosition","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 9b114d00..69f428e5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.0-beta3", + "version": "2.0.0", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 589bb6afbc47dd1679e842d86e741e2c48c6e2f4 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 May 2016 07:14:43 -0500 Subject: [PATCH 179/412] Add date to 2.0.0 changelog entry --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44c46294..72b879b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -### 2.0.0 +### 2.0.0 (May 10, 2016) - This is a breaking change. See the changes below in the beta releases. - Note the changes to event callbacks and `position` / `defaultPosition`. From 2ca787245b6ff61859f39b16773f4a9e55090fde Mon Sep 17 00:00:00 2001 From: David Stubbs Date: Thu, 19 May 2016 13:12:56 +0100 Subject: [PATCH 180/412] Use explicit constructor in Draggable to fix IE10 null reference There's a problem in IE10 with ES2015 classes and the super class. Essentially the prototype isn't set up correctly which leads to this.props being null when setting up position in the construction. However, props are passed to the class constructor explicitly by React, so we can use them from there. Tested by running the examples in IE 10 on Win 7. --- lib/Draggable.es6 | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index 33c4baf1..26c1fcc2 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -18,6 +18,11 @@ type DraggableState = { isElementSVG: boolean }; +type ConstructorProps = { + position: { x: number, y: number }, + defaultPosition: { x: number, y: number } +} + // // Define // @@ -145,22 +150,28 @@ export default class Draggable extends React.Component { position: null }; - state: DraggableState = { - // Whether or not we are currently dragging. - dragging: false, + state: DraggableState; - // Whether or not we have been dragged before. - dragged: false, + constructor(props: ConstructorProps) { + super(props); + + this.state = { + // Whether or not we are currently dragging. + dragging: false, - // Current transform x and y. - x: this.props.position ? this.props.position.x : this.props.defaultPosition.x, - y: this.props.position ? this.props.position.y : this.props.defaultPosition.y, + // Whether or not we have been dragged before. + dragged: false, - // Used for compensating for out-of-bounds drags - slackX: 0, slackY: 0, + // Current transform x and y. + x: props.position ? props.position.x : props.defaultPosition.x, + y: props.position ? props.position.y : props.defaultPosition.y, - // Can only determine if SVG after mounting - isElementSVG: false + // Used for compensating for out-of-bounds drags + slackX: 0, slackY: 0, + + // Can only determine if SVG after mounting + isElementSVG: false + }; }; componentWillMount() { @@ -327,4 +338,3 @@ export default class Draggable extends React.Component { ); } } - From 91dd49f1b78b001a93f75b16b06f04f5e0605493 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 19 May 2016 08:14:12 -0500 Subject: [PATCH 181/412] release v2.0.1 --- CHANGELOG.md | 4 ++ bower.json | 4 +- dist/react-draggable.js | 73 ++++++++++++++++++--------------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 +- 7 files changed, 50 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72b879b2..9cf672d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 2.0.1 (May 19, 2016) + +- Finally fixed the IE10 constructor bug. Thanks @davidstubbs [#158](https://github.com/mzabriskie/react-draggable/pull/158) + ### 2.0.0 (May 10, 2016) - This is a breaking change. See the changes below in the beta releases. diff --git a/bower.json b/bower.json index 8d6f2ebd..685472dc 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.0", + "version": "2.0.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", @@ -25,4 +25,4 @@ "webpack.config.js", "package.json" ] -} +} \ No newline at end of file diff --git a/dist/react-draggable.js b/dist/react-draggable.js index be62c5b3..3c5f453c 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -112,12 +112,6 @@ return /******/ (function(modules) { // webpackBootstrap /*:: import type {DraggableEventHandler} from './utils/types';*/ - - - // - // Define - // - /*:: type DraggableState = { dragging: boolean, dragged: boolean, @@ -126,37 +120,25 @@ return /******/ (function(modules) { // webpackBootstrap isElementSVG: boolean };*/ - var Draggable = function (_React$Component) { - _inherits(Draggable, _React$Component); - - function Draggable() { - var _Object$getPrototypeO; - - var _temp, _this, _ret; - - _classCallCheck(this, Draggable); - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } + // + // Define + // - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.state = { - // Whether or not we are currently dragging. - dragging: false, + /*:: type ConstructorProps = { + position: { x: number, y: number }, + defaultPosition: { x: number, y: number } + }*/ - // Whether or not we have been dragged before. - dragged: false, + var Draggable = function (_React$Component) { + _inherits(Draggable, _React$Component); - // Current transform x and y. - x: _this.props.position ? _this.props.position.x : _this.props.defaultPosition.x, - y: _this.props.position ? _this.props.position.y : _this.props.defaultPosition.y, + function Draggable(props /*: ConstructorProps*/) { + _classCallCheck(this, Draggable); - // Used for compensating for out-of-bounds drags - slackX: 0, slackY: 0, + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Draggable).call(this, props)); - // Can only determine if SVG after mounting - isElementSVG: false - }, _this.onDragStart = function (e, coreData) { + _this.onDragStart = function (e, coreData) { (0, _log2.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it. @@ -165,7 +147,9 @@ return /******/ (function(modules) { // webpackBootstrap if (shouldStart === false) return false; _this.setState({ dragging: true, dragged: true }); - }, _this.onDrag = function (e, coreData) { + }; + + _this.onDrag = function (e, coreData) { if (!_this.state.dragging) return false; (0, _log2.default)('Draggable: onDrag: %j', coreData); @@ -216,7 +200,9 @@ return /******/ (function(modules) { // webpackBootstrap if (shouldUpdate === false) return false; _this.setState(newState); - }, _this.onDragStop = function (e, coreData) { + }; + + _this.onDragStop = function (e, coreData) { if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it. @@ -244,7 +230,26 @@ return /******/ (function(modules) { // webpackBootstrap } _this.setState(newState); - }, _temp), _possibleConstructorReturn(_this, _ret); + }; + + _this.state = { + // Whether or not we are currently dragging. + dragging: false, + + // Whether or not we have been dragged before. + dragged: false, + + // Current transform x and y. + x: props.position ? props.position.x : props.defaultPosition.x, + y: props.position ? props.position.y : props.defaultPosition.y, + + // Used for compensating for out-of-bounds drags + slackX: 0, slackY: 0, + + // Can only determine if SVG after mounting + isElementSVG: false + }; + return _this; } _createClass(Draggable, [{ diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index b17c1662..57772443 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 38a26582b0c1b53423c1",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 38a26582b0c1b53423c1\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: this.props.position ? this.props.position.x : this.props.defaultPosition.x,\n y: this.props.position ? this.props.position.y : this.props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 679d61777b4985ff7ca7",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 679d61777b4985ff7ca7\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 940408a1..e33f6b42 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(Draggable)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,dragged:!1,x:_this.props.position?_this.props.position.x:_this.props.defaultPosition.x,y:_this.props.position?_this.props.position.y:_this.props.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},_this.onDragStart=function(e,coreData){(0,_log2["default"])("Draggable: onDragStart: %j",coreData);var shouldStart=_this.props.onStart(e,(0,_positionFns.createDraggableData)(_this,coreData));return shouldStart===!1?!1:void _this.setState({dragging:!0,dragged:!0})},_this.onDrag=function(e,coreData){if(!_this.state.dragging)return!1;(0,_log2["default"])("Draggable: onDrag: %j",coreData);var uiData=(0,_positionFns.createDraggableData)(_this,coreData),newState={x:uiData.x,y:uiData.y};if(_this.props.bounds){var _x=newState.x,_y=newState.y;newState.x+=_this.state.slackX,newState.y+=_this.state.slackY;var _getBoundPosition=(0,_positionFns.getBoundPosition)(_this,newState.x,newState.y),_getBoundPosition2=_slicedToArray(_getBoundPosition,2);newState.x=_getBoundPosition2[0],newState.y=_getBoundPosition2[1],newState.slackX=_this.state.slackX+(_x-newState.x),newState.slackY=_this.state.slackY+(_y-newState.y),uiData.x=_x,uiData.y=_y,uiData.deltaX=newState.x-_this.state.x,uiData.deltaY=newState.y-_this.state.y}var shouldUpdate=_this.props.onDrag(e,uiData);return shouldUpdate===!1?!1:void _this.setState(newState)},_this.onDragStop=function(e,coreData){if(!_this.state.dragging)return!1;var shouldStop=_this.props.onStop(e,(0,_positionFns.createDraggableData)(_this,coreData));if(shouldStop===!1)return!1;(0,_log2["default"])("Draggable: onDragStop: %j",coreData);var newState={dragging:!1,slackX:0,slackY:0},controlled=Boolean(_this.props.position);if(controlled){var _this$props$position=_this.props.position,_x2=_this$props$position.x,_y2=_this$props$position.y;newState.x=_x2,newState.y=_y2}_this.setState(newState)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Draggable,_React$Component),_createClass(Draggable,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:NaN},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier});var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:NaN},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier});var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index d9bca200..fa2aa1b7 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 38a26582b0c1b53423c1","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","state","dragging","dragged","x","_this","props","position","defaultPosition","y","slackX","slackY","isElementSVG","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","onDrag","uiData","newState","bounds","_x","_y","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","_x2","_this$props$position","_y2","_temp","_possibleConstructorReturn","_ret","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","_getControlPosition","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 679d61777b4985ff7ca7","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","props","onDragStart","e","coreData","_log2","shouldStart","_this","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_x2","_this$props$position","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","_getControlPosition","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","_temp","_possibleConstructorReturn","_ret","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 69f428e5..577339e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.0", + "version": "2.0.1", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -64,4 +64,4 @@ "dependencies": { "classnames": "^2.2.0" } -} +} \ No newline at end of file From 96dac9962079d34c853e13ea2e23d8b72f440fdd Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 19 May 2016 11:39:21 -0500 Subject: [PATCH 182/412] Fix targetTouches/changedTouches mismatch and multitouch bugs. Fixes #159, #118 --- lib/DraggableCore.es6 | 34 ++++++++++++++++++---------------- lib/utils/domFns.es6 | 14 +++++++++++--- lib/utils/positionFns.es6 | 8 +++++--- 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 898bd618..27e81a02 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -1,6 +1,6 @@ // @flow import React, {PropTypes} from 'react'; -import {matchesSelector, addEvent, removeEvent, addUserSelectStyles, +import {matchesSelector, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, removeUserSelectStyles, styleHacks} from './utils/domFns'; import {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; @@ -29,7 +29,7 @@ type CoreState = { dragging: boolean, lastX: number, lastY: number, - touchIdentifier: number + touchIdentifier: ?number }; // @@ -164,7 +164,7 @@ export default class DraggableCore extends React.Component { dragging: false, // Used while dragging to determine deltas. lastX: NaN, lastY: NaN, - touchIdentifier: NaN + touchIdentifier: null }; componentWillUnmount() { @@ -195,12 +195,13 @@ export default class DraggableCore extends React.Component { // Set touch identifier in component state if this is a touch event. This allows us to // distinguish between individual touches on multitouch screens by identifying which // touchpoint was set to this element. - if (e.targetTouches){ - this.setState({touchIdentifier: e.targetTouches[0].identifier}); - } + const touchIdentifier = getTouchIdentifier(e); + this.setState({touchIdentifier}); // Get the current drag point from the event. This is used as the offset. - const {x, y} = getControlPosition(e, this); + const position = getControlPosition(e, touchIdentifier, this); + if (position == null) return; // not possible but satisfies flow + const {x, y} = position; // Create an event object with all the data parents need to make a decision here. const coreEvent = createCoreData(this, x, y); @@ -234,12 +235,15 @@ export default class DraggableCore extends React.Component { }; handleDrag: EventHandler = (e) => { - // Return if this is a touch event, but not the correct one for this element - if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return; - let {x, y} = getControlPosition(e, this); + // Get the current drag point from the event. This is used as the offset. + const position = getControlPosition(e, this.state.touchIdentifier, this); + if (position == null) return; + let {x, y} = position; // Snap to grid if prop has been provided + if (x !== x) debugger; + if (Array.isArray(this.props.grid)) { let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY; [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY); @@ -267,16 +271,14 @@ export default class DraggableCore extends React.Component { handleDragStop: EventHandler = (e) => { if (!this.state.dragging) return; - // Short circuit if this is not the correct touch event. `changedTouches` contains all - // touch points that have been removed from the surface. - if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return; + const position = getControlPosition(e, this.state.touchIdentifier, this); + if (position == null) return; + const {x, y} = position; + const coreEvent = createCoreData(this, x, y); // Remove user-select hack if (this.props.enableUserSelectHack) removeUserSelectStyles(); - const {x, y} = getControlPosition(e, this); - const coreEvent = createCoreData(this, x, y); - log('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el. diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index 1601b655..f996429e 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -83,9 +83,7 @@ export function innerWidth(node: HTMLElement): number { } // Get from offsetParent -export function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition { - const evt = e.targetTouches ? e.targetTouches[0] : e; - +export function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition { const offsetParent = node.offsetParent || document.body; const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect(); @@ -104,6 +102,16 @@ export function createSVGTransform({x, y}: {x: number, y: number}): string { return 'translate(' + x + ',' + y + ')'; } +export function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} { + return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) || + (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier)); +} + +export function getTouchIdentifier(e: MouseEvent): ?number { + if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; + if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; +} + // User-select Hacks: // // Useful for preventing blue highlights all over everything when dragging. diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index 79603eba..01c3da0b 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -1,7 +1,7 @@ // @flow import {isNum, int} from './shims'; import ReactDOM from 'react-dom'; -import {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns'; +import {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns'; import type Draggable from '../Draggable'; import type {Bounds, ControlPosition, DraggableData} from './types'; @@ -63,8 +63,10 @@ export function canDragY(draggable: Draggable): boolean { } // Get {x, y} positions from event. -export function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition { - return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore)); +export function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition { + const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null; + if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch + return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore)); } // Create an data object exposed by 's events From 028a391e939675b67c22a0ccda2fac89fc5161a5 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 19 May 2016 11:46:23 -0500 Subject: [PATCH 183/412] release v2.0.2 --- CHANGELOG.md | 7 ++++ bower.json | 2 +- dist/react-draggable.js | 72 +++++++++++++++++++-------------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 53 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cf672d1..052b76ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### 2.0.2 (May 19, 2016) + +- Fix `cannot access clientX of undefined` on some touch-enabled platforms. + - Fixes [#159](https://github.com/mzabriskie/react-draggable/pull/159), + [#118](https://github.com/mzabriskie/react-draggable/pull/118) +- Fixed a bug with multi-finger multitouch if > 1 finger triggered an event at the same time. + ### 2.0.1 (May 19, 2016) - Finally fixed the IE10 constructor bug. Thanks @davidstubbs [#158](https://github.com/mzabriskie/react-draggable/pull/158) diff --git a/bower.json b/bower.json index 685472dc..438ef1c7 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.1", + "version": "2.0.2", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 3c5f453c..d11e4702 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -536,6 +536,8 @@ return /******/ (function(modules) { // webpackBootstrap exports.offsetXYFromParentOf = offsetXYFromParentOf; exports.createCSSTransform = createCSSTransform; exports.createSVGTransform = createSVGTransform; + exports.getTouch = getTouch; + exports.getTouchIdentifier = getTouchIdentifier; exports.addUserSelectStyles = addUserSelectStyles; exports.removeUserSelectStyles = removeUserSelectStyles; exports.styleHacks = styleHacks; @@ -630,9 +632,7 @@ return /******/ (function(modules) { // webpackBootstrap } // Get from offsetParent - function offsetXYFromParentOf(e /*: MouseEvent*/, node /*: HTMLElement & {offsetParent: HTMLElement}*/) /*: ControlPosition*/ { - var evt = e.targetTouches ? e.targetTouches[0] : e; - + function offsetXYFromParentOf(evt /*: {clientX: number, clientY: number}*/, node /*: HTMLElement & {offsetParent: HTMLElement}*/) /*: ControlPosition*/ { var offsetParent = node.offsetParent || document.body; var offsetParentRect = node.offsetParent === document.body ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); @@ -657,6 +657,19 @@ return /******/ (function(modules) { // webpackBootstrap return 'translate(' + x + ',' + y + ')'; } + function getTouch(e /*: MouseEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { + return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) { + return identifier === t.identifier; + }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) { + return identifier === t.identifier; + }); + } + + function getTouchIdentifier(e /*: MouseEvent*/) /*: ?number*/ { + if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; + if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; + } + // User-select Hacks: // // Useful for preventing blue highlights all over everything when dragging. @@ -871,8 +884,10 @@ return /******/ (function(modules) { // webpackBootstrap } // Get {x, y} positions from event. - function getControlPosition(e /*: MouseEvent*/, draggableCore /*: DraggableCore*/) /*: ControlPosition*/ { - return (0, _domFns.offsetXYFromParentOf)(e, _reactDom2.default.findDOMNode(draggableCore)); + function getControlPosition(e /*: MouseEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { + var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null; + if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch + return (0, _domFns.offsetXYFromParentOf)(touchObj || e, _reactDom2.default.findDOMNode(draggableCore)); } // Create an data object exposed by 's events @@ -988,7 +1003,7 @@ return /******/ (function(modules) { // webpackBootstrap dragging: boolean, lastX: number, lastY: number, - touchIdentifier: number + touchIdentifier: ?number };*/ var DraggableCore = function (_React$Component) { @@ -1009,7 +1024,7 @@ return /******/ (function(modules) { // webpackBootstrap dragging: false, // Used while dragging to determine deltas. lastX: NaN, lastY: NaN, - touchIdentifier: NaN + touchIdentifier: null }, _this.handleDragStart = function (e) { // Make it possible to attach event handlers on top of this one. _this.props.onMouseDown(e); @@ -1025,16 +1040,14 @@ return /******/ (function(modules) { // webpackBootstrap // Set touch identifier in component state if this is a touch event. This allows us to // distinguish between individual touches on multitouch screens by identifying which // touchpoint was set to this element. - if (e.targetTouches) { - _this.setState({ touchIdentifier: e.targetTouches[0].identifier }); - } + var touchIdentifier = (0, _domFns.getTouchIdentifier)(e); + _this.setState({ touchIdentifier: touchIdentifier }); // Get the current drag point from the event. This is used as the offset. - - var _getControlPosition = (0, _positionFns.getControlPosition)(e, _this); - - var x = _getControlPosition.x; - var y = _getControlPosition.y; + var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _this); + if (position == null) return; // not possible but satisfies flow + var x = position.x; + var y = position.y; // Create an event object with all the data parents need to make a decision here. @@ -1067,16 +1080,17 @@ return /******/ (function(modules) { // webpackBootstrap (0, _domFns.addEvent)(document, dragEventFor.move, _this.handleDrag); (0, _domFns.addEvent)(document, dragEventFor.stop, _this.handleDragStop); }, _this.handleDrag = function (e) { - // Return if this is a touch event, but not the correct one for this element - if (e.targetTouches && e.targetTouches[0].identifier !== _this.state.touchIdentifier) return; - - var _getControlPosition2 = (0, _positionFns.getControlPosition)(e, _this); - var x = _getControlPosition2.x; - var y = _getControlPosition2.y; + // Get the current drag point from the event. This is used as the offset. + var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); + if (position == null) return; + var x = position.x; + var y = position.y; // Snap to grid if prop has been provided + if (x !== x) debugger; + if (Array.isArray(_this.props.grid)) { var deltaX = x - _this.state.lastX, deltaY = y - _this.state.lastY; @@ -1110,20 +1124,16 @@ return /******/ (function(modules) { // webpackBootstrap }, _this.handleDragStop = function (e) { if (!_this.state.dragging) return; - // Short circuit if this is not the correct touch event. `changedTouches` contains all - // touch points that have been removed from the surface. - if (e.changedTouches && e.changedTouches[0].identifier !== _this.state.touchIdentifier) return; + var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); + if (position == null) return; + var x = position.x; + var y = position.y; + + var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); // Remove user-select hack if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(); - var _getControlPosition3 = (0, _positionFns.getControlPosition)(e, _this); - - var x = _getControlPosition3.x; - var y = _getControlPosition3.y; - - var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el. diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 57772443..42baec0c 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 679d61777b4985ff7ca7",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 679d61777b4985ff7ca7\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(e: MouseEvent, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const evt = e.targetTouches ? e.targetTouches[0] : e;\n\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, draggableCore: DraggableCore): ControlPosition {\n return offsetXYFromParentOf(e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: NaN\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n if (e.targetTouches){\n this.setState({touchIdentifier: e.targetTouches[0].identifier});\n }\n\n // Get the current drag point from the event. This is used as the offset.\n const {x, y} = getControlPosition(e, this);\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n // Return if this is a touch event, but not the correct one for this element\n if (e.targetTouches && (e.targetTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n let {x, y} = getControlPosition(e, this);\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n // Short circuit if this is not the correct touch event. `changedTouches` contains all\n // touch points that have been removed from the surface.\n if (e.changedTouches && (e.changedTouches[0].identifier !== this.state.touchIdentifier)) return;\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n const {x, y} = getControlPosition(e, this);\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 9bed6a13c839cd5cef36",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 9bed6a13c839cd5cef36\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index e33f6b42..ba299b82 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:NaN},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){e.targetTouches&&_this.setState({touchIdentifier:e.targetTouches[0].identifier});var _getControlPosition=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition.x,y=_getControlPosition.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}},_this.handleDrag=function(e){if(!e.targetTouches||e.targetTouches[0].identifier===_this.state.touchIdentifier){var _getControlPosition2=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition2.x,y=_getControlPosition2.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging&&(!e.changedTouches||e.changedTouches[0].identifier===_this.state.touchIdentifier)){_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)();var _getControlPosition3=(0,_positionFns.getControlPosition)(e,_this),x=_getControlPosition3.x,y=_getControlPosition3.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(),(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index fa2aa1b7..70341c81 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 679d61777b4985ff7ca7","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","props","onDragStart","e","coreData","_log2","shouldStart","_this","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_x2","_this$props$position","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","targetTouches","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","draggableCore","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","touchIdentifier","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","identifier","_getControlPosition","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_getControlPosition2","_snapToGrid2","MouseEvent","changedTouches","_getControlPosition3","onMouseUp","onTouchStart","onTouchEnd","_temp","_possibleConstructorReturn","_ret","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 9bed6a13c839cd5cef36","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","props","onDragStart","e","coreData","_log2","shouldStart","_this","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_x2","_this$props$position","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_snapToGrid2","MouseEvent","onMouseUp","onTouchStart","onTouchEnd","_temp","_possibleConstructorReturn","_ret","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 577339e3..a41eb5c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.1", + "version": "2.0.2", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From a6b47895bef567081b56f6ad26b30d5c364196e6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 20 May 2016 13:24:46 -0500 Subject: [PATCH 184/412] Properly handle events fired by children of handle or cancel selectors. Fixes #88 --- example/index.html | 2 +- lib/DraggableCore.es6 | 7 +++-- lib/utils/domFns.es6 | 12 ++++++++ specs/draggable.spec.jsx | 65 +++++++++++++++++++++++++++++++++------- 4 files changed, 72 insertions(+), 14 deletions(-) diff --git a/example/index.html b/example/index.html index 69b224cf..5b2e4529 100644 --- a/example/index.html +++ b/example/index.html @@ -146,7 +146,7 @@

React Draggable

- Drag here +
Drag here
You must click my handle to drag me
diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 27e81a02..d1a20b56 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -1,6 +1,7 @@ // @flow import React, {PropTypes} from 'react'; -import {matchesSelector, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, +import ReactDOM from 'react-dom'; +import {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, removeUserSelectStyles, styleHacks} from './utils/domFns'; import {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; @@ -187,8 +188,8 @@ export default class DraggableCore extends React.Component { // Short circuit if handle or cancel prop was provided and selector doesn't match. if (this.props.disabled || (!(e.target instanceof Node)) || - (this.props.handle && !matchesSelector(e.target, this.props.handle)) || - (this.props.cancel && matchesSelector(e.target, this.props.cancel))) { + (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, ReactDOM.findDOMNode(this))) || + (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, ReactDOM.findDOMNode(this)))) { return; } diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index f996429e..9afa67a5 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -23,6 +23,18 @@ export function matchesSelector(el: Node, selector: string): boolean { return el[matchesSelectorFunc].call(el, selector); } +// Works up the tree to the draggable itself attempting to match selector. +export function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean { + let node = el; + do { + if (matchesSelector(node, selector)) return true; + if (node === baseNode) return false; + node = node.parentNode; + } while (node); + + return false; +} + export function addEvent(el: ?Node, event: string, handler: Function): void { if (!el) { return; } if (el.attachEvent) { diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index c0c741f8..e470837d 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -322,6 +322,20 @@ describe('react-draggable', function () { }); describe('interaction', function () { + + function mouseDownOn(drag, selector, shouldDrag) { + resetDragging(drag); + const node = ReactDOM.findDOMNode(drag).querySelector(selector); + if (!node) throw new Error(`Selector not found: ${selector}`); + TestUtils.Simulate.mouseDown(node); + expect(drag.state.dragging).toEqual(shouldDrag); + } + + function resetDragging(drag) { + TestUtils.Simulate.mouseUp(ReactDOM.findDOMNode(drag)); + expect(drag.state.dragging).toEqual(false); + } + it('should initialize dragging onmousedown', function () { drag = TestUtils.renderIntoDocument(
); @@ -339,11 +353,27 @@ describe('react-draggable', function () { ); - TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag).querySelector('.content')); - expect(drag.state.dragging).toEqual(false); + mouseDownOn(drag, '.content', false); + mouseDownOn(drag, '.handle', true); + }); - TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag).querySelector('.handle')); - expect(drag.state.dragging).toEqual(true); + it('should only initialize dragging onmousedown of handle, even if children fire event', function () { + drag = TestUtils.renderIntoDocument( + +
+
+
Handle
+
+
Lorem ipsum...
+
+
+ ); + + mouseDownOn(drag, '.content', false); + mouseDownOn(drag, '.deep', true); + mouseDownOn(drag, '.handle > div', true); + mouseDownOn(drag, '.handle span', true); + mouseDownOn(drag, '.handle', true); }); it('should not initialize dragging onmousedown of cancel', function () { @@ -356,11 +386,27 @@ describe('react-draggable', function () { ); - TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag).querySelector('.cancel')); - expect(drag.state.dragging).toEqual(false); + mouseDownOn(drag, '.cancel', false); + mouseDownOn(drag, '.content', true); + }); - TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag).querySelector('.content')); - expect(drag.state.dragging).toEqual(true); + it('should not initialize dragging onmousedown of handle, even if children fire event', function () { + drag = TestUtils.renderIntoDocument( + +
+
+
Cancel
+
+
Lorem ipsum...
+
+
+ ); + + mouseDownOn(drag, '.content', true); + mouseDownOn(drag, '.deep', false); + mouseDownOn(drag, '.cancel > div', false); + mouseDownOn(drag, '.cancel span', false); + mouseDownOn(drag, '.cancel', false); }); it('should discontinue dragging onmouseup', function () { @@ -369,8 +415,7 @@ describe('react-draggable', function () { TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); expect(drag.state.dragging).toEqual(true); - TestUtils.Simulate.mouseUp(ReactDOM.findDOMNode(drag)); - expect(drag.state.dragging).toEqual(false); + resetDragging(drag); }); it('should modulate position on scroll', function (done) { From 6028341409d0177ac1ccc74c40b77f5ef944018a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 20 May 2016 13:26:35 -0500 Subject: [PATCH 185/412] release v2.1.0 --- CHANGELOG.md | 6 ++++++ bower.json | 2 +- dist/react-draggable.js | 19 ++++++++++++++++++- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 29 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 052b76ce..17cea17d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.1.0 (May 20, 2016) + +- Fix improperly missed `handle` or `cancel` selectors if the event originates from a child of the handle or cancel. + - Fixes a longstanding issue, [#88](https://github.com/mzabriskie/react-draggable/pull/88) + - This was pushed to a minor release as there may be edge cases (perhaps workarounds) where this changes behavior. + ### 2.0.2 (May 19, 2016) - Fix `cannot access clientX of undefined` on some touch-enabled platforms. diff --git a/bower.json b/bower.json index 438ef1c7..53dc56bb 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.2", + "version": "2.1.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index d11e4702..aa868074 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -527,6 +527,7 @@ return /******/ (function(modules) { // webpackBootstrap var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.matchesSelector = matchesSelector; + exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo; exports.addEvent = addEvent; exports.removeEvent = removeEvent; exports.outerHeight = outerHeight; @@ -568,6 +569,18 @@ return /******/ (function(modules) { // webpackBootstrap return el[matchesSelectorFunc].call(el, selector); } + // Works up the tree to the draggable itself attempting to match selector. + function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/ { + var node = el; + do { + if (matchesSelector(node, selector)) return true; + if (node === baseNode) return false; + node = node.parentNode; + } while (node); + + return false; + } + function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { if (!el) { return; @@ -956,6 +969,10 @@ return /******/ (function(modules) { // webpackBootstrap var _react2 = _interopRequireDefault(_react); + var _reactDom = __webpack_require__(3); + + var _reactDom2 = _interopRequireDefault(_reactDom); + var _domFns = __webpack_require__(5); var _positionFns = __webpack_require__(8); @@ -1033,7 +1050,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Short circuit if handle or cancel prop was provided and selector doesn't match. - if (_this.props.disabled || !(e.target instanceof Node) || _this.props.handle && !(0, _domFns.matchesSelector)(e.target, _this.props.handle) || _this.props.cancel && (0, _domFns.matchesSelector)(e.target, _this.props.cancel)) { + if (_this.props.disabled || !(e.target instanceof Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, _reactDom2.default.findDOMNode(_this)) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, _reactDom2.default.findDOMNode(_this))) { return; } diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 42baec0c..72058832 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 9bed6a13c839cd5cef36",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 9bed6a13c839cd5cef36\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport {matchesSelector, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelector(e.target, this.props.handle)) ||\n (this.props.cancel && matchesSelector(e.target, this.props.cancel))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 5c1509a6f87ef3cf8ec7",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 5c1509a6f87ef3cf8ec7\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, ReactDOM.findDOMNode(this))) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, ReactDOM.findDOMNode(this)))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index ba299b82..29766002 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelector)(e.target,_this.props.handle)||_this.props.cancel&&(0,_domFns.matchesSelector)(e.target,_this.props.cancel))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(),(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,_reactDom2["default"].findDOMNode(_this))||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,_reactDom2["default"].findDOMNode(_this)))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(),(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 70341c81..6ae15d78 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 9bed6a13c839cd5cef36","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","props","onDragStart","e","coreData","_log2","shouldStart","_this","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_x2","_this$props$position","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","node","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","parentNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_snapToGrid2","MouseEvent","onMouseUp","onTouchStart","onTouchEnd","_temp","_possibleConstructorReturn","_ret","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 5c1509a6f87ef3cf8ec7","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","props","onDragStart","e","coreData","_log2","shouldStart","_this","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_x2","_this$props$position","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_snapToGrid2","MouseEvent","onMouseUp","onTouchStart","onTouchEnd","_temp","_possibleConstructorReturn","_ret","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index a41eb5c7..7e5d7174 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.0.2", + "version": "2.1.0", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 5d0616278c887951f8cd3a98ad2f93c5ef30afc3 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 22 May 2016 10:54:45 -0500 Subject: [PATCH 186/412] Move to power-assert for tests and make failing test for DraggableCore callback --- .babelrc | 10 ++- karma.conf.js | 12 ++-- package.json | 6 +- specs/draggable.spec.jsx | 150 ++++++++++++++++++++++----------------- 4 files changed, 108 insertions(+), 70 deletions(-) diff --git a/.babelrc b/.babelrc index 6ffe6581..19860a65 100644 --- a/.babelrc +++ b/.babelrc @@ -6,5 +6,13 @@ ], "plugins": [ "transform-flow-comments", - ] + ], + "env": { + "test": { + "plugins": [ + // Makes power-assert work + "espower" + ] + } + } } diff --git a/karma.conf.js b/karma.conf.js index 4102f2c9..56147dd6 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -24,14 +24,18 @@ module.exports = function(config) { module: { loaders: [ { - test: /\.(?:js|es).?$/, - loader: 'babel-loader', + test: /\.(?:jsx?|es6)$/, + loader: 'babel', query: { cacheDirectory: true, }, - exclude: /(node_modules)/ + exclude: /node_modules/ + }, + { + test: /\.json$/, + loader: 'json' } - ] + ], }, plugins: [ new webpack.DefinePlugin({ diff --git a/package.json b/package.json index 7e5d7174..4b32fa17 100644 --- a/package.json +++ b/package.json @@ -31,12 +31,15 @@ "babel-core": "^6.5.1", "babel-eslint": "^6.0.2", "babel-loader": "^6.2.2", + "babel-plugin-espower": "^2.1.2", "babel-plugin-transform-flow-comments": "^6.7.0", "babel-preset-es2015": "^6.5.0", "babel-preset-react": "^6.5.0", "babel-preset-stage-1": "^6.5.0", "eslint": "^2.7.0", "eslint-plugin-react": "^4.3.0", + "jasmine-core": "^2.4.1", + "json-loader": "^0.5.4", "karma": "^0.13.14", "karma-chrome-launcher": "^0.2.1", "karma-cli": "0.1.2", @@ -48,6 +51,7 @@ "lodash": "^4.11.1", "open": "0.0.5", "phantomjs-prebuilt": ">=1.9", + "power-assert": "^1.4.1", "pre-commit": "^1.1.2", "react": "^15.0.0", "react-dom": "^15.0.0", @@ -64,4 +68,4 @@ "dependencies": { "classnames": "^2.2.0" } -} \ No newline at end of file +} diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index e470837d..3bfeaaf6 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -3,13 +3,14 @@ import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react/lib/ReactTestUtils'; import Draggable, {DraggableCore} from '../index'; +import assert from 'power-assert'; import _ from 'lodash'; import {getPrefix, browserPrefixToKey, browserPrefixToStyle} from '../lib/utils/getPrefix'; const transformStyle = browserPrefixToStyle('transform', getPrefix('transform')); const transformKey = browserPrefixToKey('transform', getPrefix('transform')); const userSelectStyle = browserPrefixToStyle('user-select', getPrefix('user-select')); -/*global describe,it,expect,afterEach */ +/*global describe,it,expect, afterEach */ describe('react-draggable', function () { var drag; @@ -28,14 +29,14 @@ describe('react-draggable', function () { it('should have default properties', function () { drag = TestUtils.renderIntoDocument(
); - expect(drag.props.axis).toEqual('both'); - expect(drag.props.handle).toEqual(null); - expect(drag.props.cancel).toEqual(null); - expect(drag.props.bounds).toBeFalsy(); - expect(isNaN(drag.props.zIndex)).toEqual(true); - expect(typeof drag.props.onStart).toEqual('function'); - expect(typeof drag.props.onDrag).toEqual('function'); - expect(typeof drag.props.onStop).toEqual('function'); + assert(drag.props.axis === 'both'); + assert(drag.props.handle === null); + assert(drag.props.cancel === null); + assert(drag.props.bounds == false); + assert(isNaN(drag.props.zIndex) === true); + assert(typeof drag.props.onStart === 'function'); + assert(typeof drag.props.onDrag === 'function'); + assert(typeof drag.props.onStop === 'function'); }); it('should pass style and className properly from child', function () { @@ -43,11 +44,11 @@ describe('react-draggable', function () { var node = renderToNode(drag); if ('touchAction' in document.body.style) { - expect(node.getAttribute('style')).toMatch('touch-action: none'); + assert(node.getAttribute('style').indexOf('touch-action: none') >= 0); } - expect(node.getAttribute('style')).toMatch('color: black'); - expect(node.getAttribute('style')).toMatch(transformStyle + ': translate\\\(0px, 0px\\\)'); - expect(node.getAttribute('class')).toEqual('foo react-draggable'); + assert(node.getAttribute('style').indexOf('color: black') >= 0); + assert(node.getAttribute('style').indexOf(transformStyle + ': translate(0px, 0px)') >= 0); + assert(node.getAttribute('class') === 'foo react-draggable'); }); // NOTE: this runs a shallow renderer, which DOES NOT actually render @@ -70,10 +71,10 @@ describe('react-draggable', function () { // Not easy to actually test equality here. The functions are bound as static props so we can't test those easily. var toOmit = ['onStart', 'onStop', 'onDrag', 'onMouseDown', 'children']; - expect(_.isEqual( + assert(_.isEqual( _.omit(output.props, toOmit), _.omit(expected.props, toOmit)) - ).toEqual(true); + ); }); it('should honor props', function () { @@ -98,14 +99,14 @@ describe('react-draggable', function () { ); - expect(drag.props.axis).toEqual('y'); - expect(drag.props.handle).toEqual('.handle'); - expect(drag.props.cancel).toEqual('.cancel'); - expect(drag.props.grid).toEqual([10, 10]); - expect(drag.props.zIndex).toEqual(1000); - expect(drag.props.onStart).toEqual(handleStart); - expect(drag.props.onDrag).toEqual(handleDrag); - expect(drag.props.onStop).toEqual(handleStop); + assert(drag.props.axis === 'y'); + assert(drag.props.handle === '.handle'); + assert(drag.props.cancel === '.cancel'); + assert(_.isEqual(drag.props.grid, [10, 10])); + assert(drag.props.zIndex === 1000); + assert(drag.props.onStart === handleStart); + assert(drag.props.onDrag === handleDrag); + assert(drag.props.onStop === handleStop); }); it('should throw when setting className', function () { @@ -141,7 +142,7 @@ describe('react-draggable', function () { ); TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); - expect(called).toEqual(true); + assert(called === true); }); it('should call onStop when dragging ends', function () { @@ -154,7 +155,7 @@ describe('react-draggable', function () { TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); TestUtils.Simulate.mouseUp(ReactDOM.findDOMNode(drag)); - expect(called).toEqual(true); + assert(called === true); }); it('should not call onStart when dragging begins and disabled', function () { @@ -166,7 +167,7 @@ describe('react-draggable', function () { ); TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); - expect(called).toEqual(false); + assert(called === false); }); it('should render with style translate() for DOM nodes', function () { @@ -181,8 +182,8 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); var style = node.getAttribute('style'); - expect(dragged).toEqual(true); - expect(style.indexOf('transform: translate(100px, 100px);')).not.toEqual(-1); + assert(dragged === true); + assert(style.indexOf('transform: translate(100px, 100px);') >= 0); }); it('should honor "x" axis', function () { @@ -197,8 +198,8 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); var style = node.getAttribute('style'); - expect(dragged).toEqual(true); - expect(style.indexOf('transform: translate(100px, 0px);')).not.toEqual(-1); + assert(dragged === true); + assert(style.indexOf('transform: translate(100px, 0px);') >= 0); }); it('should honor "y" axis', function () { @@ -213,8 +214,8 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); var style = node.getAttribute('style'); - expect(dragged).toEqual(true); - expect(style.indexOf('transform: translate(0px, 100px);')).not.toEqual(-1); + assert(dragged === true); + assert(style.indexOf('transform: translate(0px, 100px);') >= 0); }); it('should honor "none" axis', function () { @@ -229,8 +230,8 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); var style = node.getAttribute('style'); - expect(dragged).toEqual(true); - expect(style.indexOf('transform: translate(0px, 0px);')).not.toEqual(-1); + assert(dragged === true); + assert(style.indexOf('transform: translate(0px, 0px);') >= 0); }); it('should detect if an element is instanceof SVGElement and set state.isElementSVG to true', function() { @@ -240,7 +241,7 @@ describe('react-draggable', function () { ); - expect(drag.state.isElementSVG).toEqual(true); + assert(drag.state.isElementSVG === true); }); it('should detect if an element is NOT an instanceof SVGElement and set state.isElementSVG to false', function() { @@ -250,7 +251,7 @@ describe('react-draggable', function () { ); - expect(drag.state.isElementSVG).toEqual(false); + assert(drag.state.isElementSVG === false); }); it('should render with transform translate() for SVG nodes', function () { @@ -264,7 +265,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); var transform = node.getAttribute('transform'); - expect(transform.indexOf('translate(100,100)')).not.toEqual(-1); + assert(transform.indexOf('translate(100,100)') >= 0); }); it('should add and remove user-select styles', function () { @@ -278,11 +279,11 @@ describe('react-draggable', function () { var node = ReactDOM.findDOMNode(drag); - expect(document.body.getAttribute('style')).toEqual(''); + assert(document.body.getAttribute('style') === ''); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - expect(document.body.getAttribute('style')).toEqual(userSelectStyleStr); + assert(document.body.getAttribute('style') === userSelectStyleStr); TestUtils.Simulate.mouseUp(node); - expect(document.body.getAttribute('style')).toEqual(''); + assert(document.body.getAttribute('style') === ''); }); it('should not add and remove user-select styles when disabled', function () { @@ -295,11 +296,11 @@ describe('react-draggable', function () { var node = ReactDOM.findDOMNode(drag); - expect(document.body.getAttribute('style')).toEqual(''); + assert(document.body.getAttribute('style') === ''); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - expect(document.body.getAttribute('style')).toEqual(''); + assert(document.body.getAttribute('style') === ''); TestUtils.Simulate.mouseUp(node); - expect(document.body.getAttribute('style')).toEqual(''); + assert(document.body.getAttribute('style') === ''); }); it('should not add and remove user-select styles when onStart returns false', function () { @@ -313,11 +314,11 @@ describe('react-draggable', function () { var node = ReactDOM.findDOMNode(drag); - expect(document.body.getAttribute('style')).toEqual(''); + assert(document.body.getAttribute('style') === ''); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - expect(document.body.getAttribute('style')).toEqual(''); + assert(document.body.getAttribute('style') === ''); TestUtils.Simulate.mouseUp(node); - expect(document.body.getAttribute('style')).toEqual(''); + assert(document.body.getAttribute('style') === ''); }); }); @@ -328,19 +329,19 @@ describe('react-draggable', function () { const node = ReactDOM.findDOMNode(drag).querySelector(selector); if (!node) throw new Error(`Selector not found: ${selector}`); TestUtils.Simulate.mouseDown(node); - expect(drag.state.dragging).toEqual(shouldDrag); + assert(drag.state.dragging === shouldDrag); } function resetDragging(drag) { TestUtils.Simulate.mouseUp(ReactDOM.findDOMNode(drag)); - expect(drag.state.dragging).toEqual(false); + assert(drag.state.dragging === false); } it('should initialize dragging onmousedown', function () { drag = TestUtils.renderIntoDocument(
); TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); - expect(drag.state.dragging).toEqual(true); + assert(drag.state.dragging === true); }); it('should only initialize dragging onmousedown of handle', function () { @@ -413,7 +414,7 @@ describe('react-draggable', function () { drag = TestUtils.renderIntoDocument(
); TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); - expect(drag.state.dragging).toEqual(true); + assert(drag.state.dragging === true); resetDragging(drag); }); @@ -427,21 +428,21 @@ describe('react-draggable', function () { var dragCalled = false; function onDrag(e, coreEvent) { - expect(coreEvent.deltaY).toEqual(500); + assert(coreEvent.deltaY === 500); dragCalled = true; } drag = TestUtils.renderIntoDocument(
); var node = ReactDOM.findDOMNode(drag); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - expect(drag.state.dragging).toEqual(true); + assert(drag.state.dragging === true); document.body.style.height = '10000px'; window.scrollTo(0, 500); TestUtils.Simulate.mouseUp(node, {clientX: 0, clientY: 0}); setTimeout(function() { - expect(dragCalled).toEqual(true); - expect(drag.state.clientY).toEqual(500); + assert(dragCalled === true); + assert(drag.state.clientY === 500); done(); }, 50); }); @@ -450,10 +451,10 @@ describe('react-draggable', function () { describe('draggable callbacks', function () { it('should call back on drag', function () { function onDrag(event, data) { - expect(data.x).toEqual(100); - expect(data.y).toEqual(100); - expect(data.deltaX).toEqual(100); - expect(data.deltaY).toEqual(100); + assert(data.x === 100); + assert(data.y === 100); + assert(data.deltaX === 100); + assert(data.deltaY === 100); } drag = TestUtils.renderIntoDocument( @@ -467,10 +468,10 @@ describe('react-draggable', function () { it('should call back with offset left/top, not client', function () { function onDrag(event, data) { - expect(data.x).toEqual(100); - expect(data.y).toEqual(100); - expect(data.deltaX).toEqual(100); - expect(data.deltaY).toEqual(100); + assert(data.x === 100); + assert(data.y === 100); + assert(data.deltaX === 100); + assert(data.deltaY === 100); } drag = TestUtils.renderIntoDocument( @@ -482,6 +483,27 @@ describe('react-draggable', function () { }); }); + describe('DraggableCore callbacks', function () { + it('should call back with node on drag', function () { + function onDrag(event, data) { + assert(data.x === 100); + assert(data.y === 100); + assert(data.deltaX === 100); + assert(data.deltaY === 100); + assert(data.node === ReactDOM.findDOMNode(drag)); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); + }); + + describe('validation', function () { it('should result with invariant when there isn\'t a child', function () { drag = (); @@ -493,7 +515,7 @@ describe('react-draggable', function () { error = true; } - expect(error).toEqual(true); + assert(error === true); }); it('should result with invariant if there\'s more than a single child', function () { @@ -506,7 +528,7 @@ describe('react-draggable', function () { error = true; } - expect(error).toEqual(true); + assert(error === true); }); }); }); From 81de84e04ae80742254fa1aa0371fa1384576d95 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 22 May 2016 11:02:22 -0500 Subject: [PATCH 187/412] Fix offsetParent calculations in test --- specs/draggable.spec.jsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 3bfeaaf6..df7a81bf 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -10,10 +10,18 @@ const transformStyle = browserPrefixToStyle('transform', getPrefix('transform')) const transformKey = browserPrefixToKey('transform', getPrefix('transform')); const userSelectStyle = browserPrefixToStyle('user-select', getPrefix('user-select')); -/*global describe,it,expect, afterEach */ describe('react-draggable', function () { var drag; + // Remove body margin so offsetParent calculations work properly + beforeAll(function() { + const styleNode = document.createElement('style'); + // browser detection (based on prototype.js) + const styleText = document.createTextNode('body {margin: 0;}'); + styleNode.appendChild(styleText); + document.getElementsByTagName('head')[0].appendChild(styleNode); + }); + beforeEach(function() { spyOn(console, 'error'); }); From f68c40159cd26c950c34fbd17aebcfc1d0555bb7 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 22 May 2016 11:02:49 -0500 Subject: [PATCH 188/412] Bugfix: wasn't calling back with DOM node --- lib/utils/positionFns.es6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index 01c3da0b..b2df07b4 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -78,7 +78,7 @@ export function createCoreData(draggable: DraggableCore, x: number, y: number): if (isStart) { // If this is our first move, use the x and y as last coords. return { - node: ReactDOM.findDOMNode(this), + node: ReactDOM.findDOMNode(draggable), deltaX: 0, deltaY: 0, lastX: x, lastY: y, x: x, y: y @@ -86,7 +86,7 @@ export function createCoreData(draggable: DraggableCore, x: number, y: number): } else { // Otherwise calculate proper values. return { - node: ReactDOM.findDOMNode(this), + node: ReactDOM.findDOMNode(draggable), deltaX: x - state.lastX, deltaY: y - state.lastY, lastX: state.lastX, lastY: state.lastY, x: x, y: y From 72e14ec5f3aa03d6f96d8612cc5b8420b2e04fd9 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 22 May 2016 11:03:51 -0500 Subject: [PATCH 189/412] release v2.1.1 --- CHANGELOG.md | 5 +++++ bower.json | 2 +- dist/react-draggable.js | 4 ++-- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 ++-- 7 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17cea17d..4020e881 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 2.1.1 (May 22, 2016) + +- Bugfix: `` wasn't calling back with the DOM node. +- Internal: Rework test suite to use power-assert. + ### 2.1.0 (May 20, 2016) - Fix improperly missed `handle` or `cancel` selectors if the event originates from a child of the handle or cancel. diff --git a/bower.json b/bower.json index 53dc56bb..554f4329 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.1.0", + "version": "2.1.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index aa868074..c56146c3 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -912,7 +912,7 @@ return /******/ (function(modules) { // webpackBootstrap if (isStart) { // If this is our first move, use the x and y as last coords. return { - node: _reactDom2.default.findDOMNode(this), + node: _reactDom2.default.findDOMNode(draggable), deltaX: 0, deltaY: 0, lastX: x, lastY: y, x: x, y: y @@ -920,7 +920,7 @@ return /******/ (function(modules) { // webpackBootstrap } else { // Otherwise calculate proper values. return { - node: _reactDom2.default.findDOMNode(this), + node: _reactDom2.default.findDOMNode(draggable), deltaX: x - state.lastX, deltaY: y - state.lastY, lastX: state.lastX, lastY: state.lastY, x: x, y: y diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 72058832..2fffb8fe 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 5c1509a6f87ef3cf8ec7",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 5c1509a6f87ef3cf8ec7\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(this),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, ReactDOM.findDOMNode(this))) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, ReactDOM.findDOMNode(this)))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap d9a89c2645926f6c4a0f",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap d9a89c2645926f6c4a0f\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, ReactDOM.findDOMNode(this))) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, ReactDOM.findDOMNode(this)))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 29766002..d85025c6 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,_reactDom2["default"].findDOMNode(_this))||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,_reactDom2["default"].findDOMNode(_this)))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(),(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,_reactDom2["default"].findDOMNode(_this))||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,_reactDom2["default"].findDOMNode(_this)))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(),(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 6ae15d78..d49467e6 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 5c1509a6f87ef3cf8ec7","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","_React$Component","props","onDragStart","e","coreData","_log2","shouldStart","_this","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","getBoundPosition","_getBoundPosition2","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_x2","_this$props$position","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","cloneElement","Children","only","_extends","transform","Component","displayName","propTypes","_DraggableCore2","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","Object","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_snapToGrid2","MouseEvent","onMouseUp","onTouchStart","onTouchEnd","_temp","_possibleConstructorReturn","_ret","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap d9a89c2645926f6c4a0f","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","props","_classCallCheck","_this","_possibleConstructorReturn","Object","getPrototypeOf","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","_getBoundPosition","getBoundPosition","_getBoundPosition2","_slicedToArray","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_this$props$position","_x2","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","_DraggableCore2","_extends","cloneElement","Children","only","transform","Component","displayName","propTypes","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_snapToGrid","_snapToGrid2","MouseEvent","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 4b32fa17..5654367f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.1.0", + "version": "2.1.1", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -68,4 +68,4 @@ "dependencies": { "classnames": "^2.2.0" } -} +} \ No newline at end of file From 3e69b8b5b1de559339359114e76080961655508c Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 5 Jun 2016 20:15:57 -0500 Subject: [PATCH 190/412] Add `typeArg` to MouseEvent constructor as per spec; fixes #164 --- lib/DraggableCore.es6 | 12 +++++++++++- specs/draggable.spec.jsx | 16 ++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index d1a20b56..1fd44faf 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -259,7 +259,17 @@ export default class DraggableCore extends React.Component { // Call event handler. If it returns explicit false, trigger end. const shouldUpdate = this.props.onDrag(e, coreEvent); if (shouldUpdate === false) { - this.handleDragStop(new MouseEvent()); + try { + this.handleDragStop(new MouseEvent('mouseup')); + } catch (err) { + // Old browsers + const event = document.createEvent('MouseEvents'); + // I see why this insanity was deprecated + // $FlowIgnore + event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + // $FlowIgnore + this.handleDragStop(event); + } return; } diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index df7a81bf..7ef79b8b 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -178,6 +178,22 @@ describe('react-draggable', function () { assert(called === false); }); + it('should immediately call onStop if onDrag returns false', function () { + var called = false; + drag = TestUtils.renderIntoDocument( + +
+ + ); + + TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); + assert(called === false); + mouseMove(10, 10); + assert(called === true); + assert(drag.state.x === 0); + assert(drag.state.y === 0); + }); + it('should render with style translate() for DOM nodes', function () { var dragged = false; drag = TestUtils.renderIntoDocument( From 491aa71f247a57883b8bb0bd932464a70e597639 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 5 Jun 2016 20:53:02 -0500 Subject: [PATCH 191/412] release v2.1.2 --- CHANGELOG.md | 5 +++++ bower.json | 2 +- dist/react-draggable.js | 12 +++++++++++- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 21 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4020e881..ed8c0cfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 2.1.2 (Jun 5, 2016) + +- Bugfix: Fix `return false` to cancel `onDrag` breaking on both old and new browsers due to missing `typeArg` and/or + unsupported `MouseEventConstructor`. Fixes [#164](https://github.com/mzabriskie/react-draggable/issues/164). + ### 2.1.1 (May 22, 2016) - Bugfix: `` wasn't calling back with the DOM node. diff --git a/bower.json b/bower.json index 554f4329..92954e52 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.1.1", + "version": "2.1.2", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index c56146c3..2a384140 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -1130,7 +1130,17 @@ return /******/ (function(modules) { // webpackBootstrap // Call event handler. If it returns explicit false, trigger end. var shouldUpdate = _this.props.onDrag(e, coreEvent); if (shouldUpdate === false) { - _this.handleDragStop(new MouseEvent()); + try { + _this.handleDragStop(new MouseEvent('mouseup')); + } catch (err) { + // Old browsers + var event = document.createEvent('MouseEvents'); + // I see why this insanity was deprecated + // $FlowIgnore + event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + // $FlowIgnore + _this.handleDragStop(event); + } return; } diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 2fffb8fe..4cba04fd 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap d9a89c2645926f6c4a0f",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap d9a89c2645926f6c4a0f\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, ReactDOM.findDOMNode(this))) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, ReactDOM.findDOMNode(this)))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n this.handleDragStop(new MouseEvent());\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b668cf52fd8889146cd5",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b668cf52fd8889146cd5\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, ReactDOM.findDOMNode(this))) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, ReactDOM.findDOMNode(this)))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = document.createEvent('MouseEvents');\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n // $FlowIgnore\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index d85025c6..656334b8 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,_reactDom2["default"].findDOMNode(_this))||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,_reactDom2["default"].findDOMNode(_this)))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);return shouldUpdate===!1?void _this.handleDragStop(new MouseEvent):void _this.setState({lastX:x,lastY:y})}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(),(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,_reactDom2["default"].findDOMNode(_this))||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,_reactDom2["default"].findDOMNode(_this)))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);if(shouldUpdate!==!1)_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(),(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); //# sourceMappingURL=dist/react-draggable.min.js \ No newline at end of file diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index d49467e6..b26da8f7 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap d9a89c2645926f6c4a0f","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","props","_classCallCheck","_this","_possibleConstructorReturn","Object","getPrototypeOf","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","_getBoundPosition","getBoundPosition","_getBoundPosition2","_slicedToArray","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_this$props$position","_x2","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","_DraggableCore2","_extends","cloneElement","Children","only","transform","Component","displayName","propTypes","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_snapToGrid","_snapToGrid2","MouseEvent","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"CAAA,SAAAA,KAAAC,SACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,QAAAG,QAAA,SAAAA,QAAA,cACA,kBAAAC,SAAAA,OAAAC,IACAD,QAAA,QAAA,aAAAJ,SACA,gBAAAC,SACAA,QAAA,eAAAD,QAAAG,QAAA,SAAAA,QAAA,cAEAJ,KAAA,eAAAC,QAAAD,KAAA,MAAAA,KAAA,WACCO,KAAA,SAAAC,8BAAAC,+BACD,yBCNA,QAAAC,qBAAAC,UAGA,GAAAC,iBAAAD,UACA,MAAAC,kBAAAD,UAAAT,OAGA,IAAAC,QAAAS,iBAAAD,WACAT,WACAW,GAAAF,SACAG,QAAA,EAUA,OANAC,SAAAJ,UAAAK,KAAAb,OAAAD,QAAAC,OAAAA,OAAAD,QAAAQ,qBAGAP,OAAAW,QAAA,EAGAX,OAAAD,QAvBA,GAAAU,oBAqCA,OATAF,qBAAAO,EAAAF,QAGAL,oBAAAQ,EAAAN,iBAGAF,oBAAAS,EAAA,GAGAT,oBAAA,8DCtCAP,QAAOD,QAAUQ,oBAAQ,GAARA,WACjBP,OAAOD,QAAQkB,cAAgBV,oBAAQ,GAARA,ksECA/BW,OAAAX,oBAAA,0CACAY,UAAAZ,oBAAA,gDAEAa,YAAAb,oBAAA,oDACAc,QAAAd,oBAAA,GACAe,aAAAf,oBAAA,GACAgB,OAAAhB,oBAAA,GACAiB,eAAAjB,oBAAA,0DACAkB,KAAAlB,oBAAA,uCAoBqBmB,qCA6HnB,QAAAA,WAAYC,OAAyBC,gBAAAxB,KAAAsB,UAAA,IAAAG,OAAAC,2BAAA1B,KAAA2B,OAAAC,eAAAN,WAAAb,KAAAT,KAC7BuB,OAD6B,OAAAE,OAsDrCI,YAAqC,SAACC,EAAGC,WACvC,EAAAC,MAAAA,YAAI,6BAA8BD,SAGlC,IAAME,aAAcR,MAAKF,MAAMW,QAAQJ,GAAG,EAAAZ,aAAAiB,qBAAAV,MAA0BM,UAEpE,OAAIE,gBAAgB,GAAc,MAElCR,OAAKW,UAAUC,UAAU,EAAMC,SAAS,KA9DLb,MAiErCc,OAAgC,SAACT,EAAGC,UAClC,IAAKN,MAAKe,MAAMH,SAAU,OAAO,GACjC,EAAAL,MAAAA,YAAI,wBAAyBD,SAE7B,IAAMU,SAAS,EAAAvB,aAAAiB,qBAAAV,MAA0BM,UAEnCW,UACJC,EAAGF,OAAOE,EACVC,EAAGH,OAAOG,EAIZ,IAAInB,MAAKF,MAAMsB,OAAQ,CAAA,GAEdC,IAAQJ,SAARC,EAAGI,GAAKL,SAALE,CAKVF,UAASC,GAAKlB,MAAKe,MAAMQ,OACzBN,SAASE,GAAKnB,MAAKe,MAAMS,MARJ,IAAAC,oBAYM,EAAAhC,aAAAiC,kBAAA1B,MAAuBiB,SAASC,EAAGD,SAASE,GAZlDQ,mBAAAC,eAAAH,kBAAA,EAYpBR,UAASC,EAZWS,mBAAA,GAYRV,SAASE,EAZDQ,mBAAA,GAerBV,SAASM,OAASvB,MAAKe,MAAMQ,QAAUF,GAAIJ,SAASC,GACpDD,SAASO,OAASxB,MAAKe,MAAMS,QAAUF,GAAIL,SAASE,GAGpDH,OAAOE,EAAIG,GACXL,OAAOG,EAAIG,GACXN,OAAOa,OAASZ,SAASC,EAAIlB,MAAKe,MAAMG,EACxCF,OAAOc,OAASb,SAASE,EAAInB,MAAKe,MAAMI,EAI1C,GAAMY,cAAe/B,MAAKF,MAAMgB,OAAOT,EAAGW,OAC1C,OAAIe,iBAAiB,GAAc,MAEnC/B,OAAKW,SAASM,WA1GqBjB,MA6GrCgC,WAAoC,SAAC3B,EAAGC,UACtC,IAAKN,MAAKe,MAAMH,SAAU,OAAO,CAGjC,IAAMqB,YAAajC,MAAKF,MAAMoC,OAAO7B,GAAG,EAAAZ,aAAAiB,qBAAAV,MAA0BM,UAClE,IAAI2B,cAAe,EAAO,OAAO,GAEjC,EAAA1B,MAAAA,YAAI,4BAA6BD,SAEjC,IAAMW,WACJL,UAAU,EACVW,OAAQ,EACRC,OAAQ,GAKJW,WAAaC,QAAQpC,MAAKF,MAAMuC,SACtC,IAAIF,WAAY,CAAA,GAAAG,sBACCtC,MAAKF,MAAMuC,SAAnBE,IADOD,qBACPpB,EAAGsB,IADIF,qBACJnB,CACVF,UAASC,EAAIqB,IACbtB,SAASE,EAAIqB,IAGfxC,MAAKW,SAASM,WAlIdjB,MAAKe,OAEHH,UAAU,EAGVC,SAAS,EAGTK,EAAGpB,MAAMuC,SAAWvC,MAAMuC,SAASnB,EAAIpB,MAAM2C,gBAAgBvB,EAC7DC,EAAGrB,MAAMuC,SAAWvC,MAAMuC,SAASlB,EAAIrB,MAAM2C,gBAAgBtB,EAG7DI,OAAQ,EAAGC,OAAQ,EAGnBkB,cAAc,GAlBmB1C,uHAuB/BzB,KAAKuB,MAAMuC,UAAc9D,KAAKuB,MAAMgB,QAAUvC,KAAKuB,MAAMoC,QAE3DS,QAAQC,KAAK,yQAQiB,mBAAtBC,QAAOC,YAA8BC,WAAAA,WAASC,YAAYzE,eAAiBsE,QAAOC,YAC1FvE,KAAKoC,UAAW+B,cAAc,sDAIRO,YAEpBA,UAAUZ,UACR9D,KAAKuB,MAAMuC,UACXY,UAAUZ,SAASnB,IAAM3C,KAAKuB,MAAMuC,SAASnB,GAC7C+B,UAAUZ,SAASlB,IAAM5C,KAAKuB,MAAMuC,SAASlB,GAGjD5C,KAAKoC,UAAWO,EAAG+B,UAAUZ,SAASnB,EAAGC,EAAG8B,UAAUZ,SAASlB,mDAKjE5C,KAAKoC,UAAUC,UAAU,qCAsFzB,GAAIsC,UAAYC,aAAe,KAGzBhB,WAAaC,QAAQ7D,KAAKuB,MAAMuC,UAChCe,WAAajB,YAAc5D,KAAKwC,MAAMH,SAEtCyB,SAAW9D,KAAKuB,MAAMuC,UAAY9D,KAAKuB,MAAM2C,gBAC7CY,eAEJnC,GAAG,EAAAzB,aAAA6D,UAAS/E,OAAS6E,UACnB7E,KAAKwC,MAAMG,EACXmB,SAASnB,EAGXC,GAAG,EAAA1B,aAAA8D,UAAShF,OAAS6E,UACnB7E,KAAKwC,MAAMI,EACXkB,SAASlB,EAIT5C,MAAKwC,MAAM2B,aACbS,cAAe,EAAA3D,QAAAgE,oBAAmBH,eAMlCH,OAAQ,EAAA1D,QAAAiE,oBAAmBJ,cAI7B,IAAMK,YAAY,EAAAC,aAAAA,YAAYpF,KAAKuB,MAAM8D,SAAS9D,MAAM4D,WAAa,GAAK,mBACxEG,2BAA4BtF,KAAKwC,MAAMH,SACvCkD,0BAA2BvF,KAAKwC,MAAMF,SAKxC,OACEkD,SAAAA,WAAAC,cAAAC,gBAAAA,WAAAC,YAAmB3F,KAAKuB,OAAOW,QAASlC,KAAK6B,YAAaU,OAAQvC,KAAKuC,OAAQoB,OAAQ3D,KAAKyD,aACzF+B,QAAAA,WAAMI,aAAaJ,QAAAA,WAAMK,SAASC,KAAK9F,KAAKuB,MAAM8D,WACjDF,UAAWA,UACXR,MAAAgB,YAAW3F,KAAKuB,MAAM8D,SAAS9D,MAAMoD,MAAUA,OAC/CoB,UAAWnB,+BAjTkBY,QAAAA,WAAMQ,UAAxB1E,WAEZ2E,YAAc,YAFF3E,UAIZ4E,sBAEFR,gBAAAA,WAAcQ,WAejBC,KAAMrF,OAAAsF,UAAUC,OAAO,OAAQ,IAAK,IAAK,SA4BzCxD,OAAQ/B,OAAAsF,UAAUE,WAChBxF,OAAAsF,UAAUG,OACRC,KAAM1F,OAAAsF,UAAUK,OAChBC,MAAO5F,OAAAsF,UAAUK,OACjBE,IAAK7F,OAAAsF,UAAUK,OACfG,OAAQ9F,OAAAsF,UAAUK,SAEpB3F,OAAAsF,UAAUS,OACV/F,OAAAsF,UAAUC,QAAO,MAoBnBnC,gBAAiBpD,OAAAsF,UAAUG,OACzB5D,EAAG7B,OAAAsF,UAAUK,OACb7D,EAAG9B,OAAAsF,UAAUK,SAuBf3C,SAAUhD,OAAAsF,UAAUG,OAClB5D,EAAG7B,OAAAsF,UAAUK,OACb7D,EAAG9B,OAAAsF,UAAUK,SAMftB,UAAAhE,OAAA2F,UACAnC,MAAAxD,OAAA2F,UACAf,UAAA5E,OAAA2F,YAhHiBxF,UAmHZyF,yBACFrB,gBAAAA,WAAcqB,cACjBZ,KAAM,OACNtD,QAAQ,EACRqB,iBAAkBvB,EAAG,EAAGC,EAAG,GAC3BkB,SAAU,0BAxHOxC,8EC7BrB1B,OAAAD,QAAAM,wDCAAL,OAAAD,QAAAO,4ECAA,GAAA8G,8BAAAC,+BAOA,WACA,YAIA,SAAAC,cAGA,IAAA,GAFAC,YAEAC,EAAA,EAAiBA,EAAAC,UAAAC,OAAsBF,IAAA,CACvC,GAAAG,KAAAF,UAAAD,EACA,IAAAG,IAAA,CAEA,GAAAC,eAAAD,IAEA,IAAA,WAAAC,SAAA,WAAAA,QACAL,QAAAM,KAAAF,SACI,IAAAG,MAAAC,QAAAJ,KACJJ,QAAAM,KAAAP,WAAAU,MAAA,KAAAL,UACI,IAAA,WAAAC,QACJ,IAAA,GAAAK,OAAAN,KACAO,OAAArH,KAAA8G,IAAAM,MAAAN,IAAAM,MACAV,QAAAM,KAAAI,MAMA,MAAAV,SAAAY,KAAA,KAxBA,GAAAD,WAAgBE,cA2BhB,oBAAApI,SAAAA,OAAAD,QACAC,OAAAD,QAAAuH,YAGAF,gCAAAC,8BAAA,WACA,MAAAC,aACGU,MAAAjI,QAAAqH,gCAAAiB,SAAAhB,gCAAArH,OAAAD,QAAAsH,uVCpCI,QAASiB,iBAAgBC,GAAUC,UAexC,MAdKC,uBACHA,qBAAsB,EAAAlH,OAAAmH,cACpB,UACA,wBACA,qBACA,oBACA,oBACC,SAASC,QAEV,OAAO,EAAApH,OAAAqH,YAAWL,GAAGI,YAKlBJ,GAAGE,qBAAqB5H,KAAK0H,GAAIC,UAInC,QAASK,6BAA4BN,GAAUC,SAAkBM,UACtE,GAAIC,MAAOR,EACX,GAAG,CACD,GAAID,gBAAgBS,KAAMP,UAAW,OAAO,CAC5C,IAAIO,OAASD,SAAU,OAAO,CAC9BC,MAAOA,KAAKC,iBACLD,KAET,QAAO,EAGF,QAASE,UAASV,GAAWW,MAAeC,SAC5CZ,KACDA,GAAGa,YACLb,GAAGa,YAAY,KAAOF,MAAOC,SACpBZ,GAAGc,iBACZd,GAAGc,iBAAiBH,MAAOC,SAAS,GAGpCZ,GAAG,KAAOW,OAASC,SAIhB,QAASG,aAAYf,GAAWW,MAAeC,SAC/CZ,KACDA,GAAGgB,YACLhB,GAAGgB,YAAY,KAAOL,MAAOC,SACpBZ,GAAGiB,oBACZjB,GAAGiB,oBAAoBN,MAAOC,SAAS,GAGvCZ,GAAG,KAAOW,OAAS,MAIhB,QAASO,aAAYV,MAG1B,GAAIW,QAASX,KAAKY,aACZC,cAAgBC,OAAOC,iBAAiBf,KAG9C,OAFAW,UAAU,EAAAnI,OAAAA,QAAIqI,cAAcG,gBAC5BL,SAAU,EAAAnI,OAAAA,QAAIqI,cAAcI,mBAIvB,QAASC,YAAWlB,MAGzB,GAAImB,OAAQnB,KAAKoB,YACXP,cAAgBC,OAAOC,iBAAiBf,KAG9C,OAFAmB,SAAS,EAAA3I,OAAAA,QAAIqI,cAAcQ,iBAC3BF,QAAS,EAAA3I,OAAAA,QAAIqI,cAAcS,kBAGtB,QAASC,aAAYvB,MAC1B,GAAIW,QAASX,KAAKY,aACZC,cAAgBC,OAAOC,iBAAiBf,KAG9C,OAFAW,UAAU,EAAAnI,OAAAA,QAAIqI,cAAcW,YAC5Bb,SAAU,EAAAnI,OAAAA,QAAIqI,cAAcY,eAIvB,QAASC,YAAW1B,MACzB,GAAImB,OAAQnB,KAAKoB,YACXP,cAAgBC,OAAOC,iBAAiBf,KAG9C,OAFAmB,SAAS,EAAA3I,OAAAA,QAAIqI,cAAcc,aAC3BR,QAAS,EAAA3I,OAAAA,QAAIqI,cAAce,cAKtB,QAASC,sBAAqBC,IAAyC9B,MAC5E,GAAM+B,cAAe/B,KAAK+B,cAAgBC,SAASC,KAC7CC,iBAAmBlC,KAAK+B,eAAiBC,SAASC,MAAQpE,KAAM,EAAGG,IAAK,GAAK+D,aAAaI,wBAE1FnI,EAAI8H,IAAIM,QAAUL,aAAaM,WAAaH,iBAAiBrE,KAC7D5D,EAAI6H,IAAIQ,QAAUP,aAAaQ,UAAYL,iBAAiBlE,GAElE,QAAQhE,EAAAA,EAAGC,EAAAA,GAGN,QAASsC,oBAATiG,MAAoE,GAAvCxI,GAAuCwI,KAAvCxI,EAAGC,EAAoCuI,KAApCvI,CAErC,OAAAwI,qBAAS,EAAAC,WAAAC,oBAAmB,YAAnBC,YAAAA,YAAiD,aAAe5I,EAAI,MAAQC,EAAI,OAGpF,QAASqC,oBAATuG,OAAoE,GAAvC7I,GAAuC6I,MAAvC7I,EAAGC,EAAoC4I,MAApC5I,CACrC,OAAO,aAAeD,EAAI,IAAMC,EAAI,IAG/B,QAAS6I,UAAS3J,EAAe4J,YACtC,MAAQ5J,GAAE6J,gBAAiB,EAAAxK,OAAAmH,aAAYxG,EAAE6J,cAAe,SAAAC,GAAA,MAAKF,cAAeE,EAAEF,cACtE5J,EAAE+J,iBAAkB,EAAA1K,OAAAmH,aAAYxG,EAAE+J,eAAgB,SAAAD,GAAA,MAAKF,cAAeE,EAAEF,aAG3E,QAASI,oBAAmBhK,GACjC,MAAIA,GAAE6J,eAAiB7J,EAAE6J,cAAc,GAAW7J,EAAE6J,cAAc,GAAGD,WACjE5J,EAAE+J,gBAAkB/J,EAAE+J,eAAe,GAAW/J,EAAE+J,eAAe,GAAGH,WAAxE,OAUK,QAASK,uBACd,GAAMpH,OAAQgG,SAASC,KAAKoB,aAAa,UAAY,EACrDrB,UAASC,KAAKqB,aAAa,QAAStH,MAAQuH,iBAGvC,QAASC,0BACd,GAAMxH,OAAQgG,SAASC,KAAKoB,aAAa,UAAY,EACrDrB,UAASC,KAAKqB,aAAa,QAAStH,MAAMyH,QAAQF,gBAAiB,KAG9D,QAASG,cAA4C,GAAjCC,YAAiCjF,UAAAC,QAAA,GAAAW,SAAAZ,UAAA,MAAAA,UAAA,EAG1D,OAAA1B,WACE4G,YAAa,QACVD,qSA7ISpE,gBAAAA,wBAmBAO,4BAAAA,oCAWAI,SAAAA,iBAYAK,YAAAA,oBAYAG,YAAAA,oBAUAQ,WAAAA,mBASAK,YAAAA,oBAQAG,WAAAA,mBASAG,qBAAAA,6BAUAtF,mBAAAA,2BAKAD,mBAAAA,2BAIAwG,SAAAA,iBAKAK,mBAAAA,2BAYAC,oBAAAA,4BAKAI,uBAAAA,+BAKAE,WAAAA,UA9IhB,IAAAlL,QAAAhB,oBAAA,GACAkL,WAAAlL,oBAAA,kDAIIkI,oBAAsB,GA2HpBmE,kBAAmB,EAAAnB,WAAAoB,WAAU,eAC7BC,YAAa,EAAArB,WAAAsB,sBAAqB,cAAeH,kBACjDN,gBAAA,IAAsBQ,WAAtB,gDCjIC,SAASpE,aAAYsE,MAAmBC,UAC7C,IAAK,GAAIzF,GAAI,EAAGE,OAASsF,MAAMtF,OAAYA,OAAJF,EAAYA,IACjD,GAAIyF,SAASjF,MAAMiF,UAAWD,MAAMxF,GAAIA,EAAGwF,QAAS,MAAOA,OAAMxF,GAI9D,QAASoB,YAAWsE,MACzB,MAAuB,kBAATA,OAAgE,sBAAzCnL,OAAOoL,UAAUC,SAASvM,KAAKqM,MAG/D,QAASG,OAAMC,KACpB,MAAsB,gBAARA,OAAqBC,MAAMD,KAGpC,QAASE,KAAIC,GAClB,MAAOC,UAASD,EAAG,IAGd,QAASvG,WAAUvF,MAAegM,SAAkBC,eACzD,MAAIjM,OAAMgM,UACD,GAAIE,OAAJ,gBAA0BF,SAA1B,cAAgDC,cAAhD,4CADT,sEAnBclF,YAAAA,oBAMAE,WAAAA,mBAIAyE,MAAAA,qBAIAG,YAIAtG,UAAAA,gDClBT,SAAS2F,aAA4C,GAAlCiB,MAAkCrG,UAAAC,QAAA,GAAAW,SAAAZ,UAAA,GAArB,YAAqBA,UAAA,EAI1D,IAAsB,mBAAXoC,SAAqD,mBAApBA,QAAOkB,SAA0B,MAAO,EAEpF,IAAMhG,OAAQ8E,OAAOkB,SAASgD,gBAAgBhJ,KAE9C,IAAI+I,OAAQ/I,OAAO,MAAO,EAE1B,KAAK,GAAIyC,GAAI,EAAGA,EAAIwG,SAAStG,OAAQF,IACnC,GAAIkE,mBAAmBoC,KAAME,SAASxG,KAAOzC,OAAO,MAAOiJ,UAASxG,EAGtE,OAAO,GAGF,QAASkE,oBAAmBoC,KAAcG,QAC/C,MAAOA,QAAA,GAAYA,OAASC,iBAAiBJ,MAAUA,KAGlD,QAASf,sBAAqBe,KAAcG,QACjD,MAAOA,QAAA,IAAaA,OAAOE,cAApB,IAAqCL,KAASA,KAGvD,QAASI,kBAAiBE,KAGxB,IAAK,GAFDC,KAAM,GACNC,kBAAmB,EACd9G,EAAI,EAAGA,EAAI4G,IAAI1G,OAAQF,IAC1B8G,kBACFD,KAAOD,IAAI5G,GAAG+G,cACdD,kBAAmB,GACC,MAAXF,IAAI5G,GACb8G,kBAAmB,EAEnBD,KAAOD,IAAI5G,EAGf,OAAO6G,oEAtCOxB,UAAAA,kBAiBAnB,mBAAAA,2BAIAqB,qBAAAA,oBAtBhB,IAAMiB,WAAY,MAAO,SAAU,IAAK,yBA6CzBnB,2JCrCR,QAAStJ,kBAAiB0B,UAAsBlC,EAAWC,GAEhE,IAAKiC,UAAUtD,MAAMsB,OAAQ,OAAQF,EAAGC,EAFqD,IAKxFC,QAAUgC,UAAUtD,MAApBsB,MACLA,QAA2B,gBAAXA,QAAsBA,OAASuL,YAAYvL,OAC3D,IAAM8F,MAAOnE,WAAAA,WAASC,YAAYI,UAElC,IAAsB,gBAAXhC,QAAqB,CAC9B,GAAIwL,WAAA,MACJ,IAAe,WAAXxL,OACFwL,UAAY1F,KAAKC,eAGjB,IADAyF,UAAY1D,SAAS2D,cAAczL,SAC9BwL,UAAW,KAAM,IAAIZ,OAAM,oBAAsB5K,OAAS,+BAEjE,IAAM0L,WAAY9E,OAAOC,iBAAiBf,MACpC6F,eAAiB/E,OAAOC,iBAAiB2E,UAE/CxL,SACE2D,MAAOmC,KAAK8F,YAAa,EAAAtN,OAAAA,QAAIqN,eAAelE,cACtC,EAAAnJ,OAAAA,QAAIoN,UAAUvE,kBAAmB,EAAA7I,OAAAA,QAAIoN,UAAUG,YACrD/H,KAAMgC,KAAKgG,WAAY,EAAAxN,OAAAA,QAAIqN,eAAerE,aACpC,EAAAhJ,OAAAA,QAAIoN,UAAU5E,iBAAkB,EAAAxI,OAAAA,QAAIoN,UAAUK,WACpDlI,OAAO,EAAAzF,QAAAoJ,YAAWgE,YAAa,EAAApN,QAAA4I,YAAWlB,MAAQA,KAAK8F,WACvD7H,QAAQ,EAAA3F,QAAAiJ,aAAYmE,YAAa,EAAApN,QAAAoI,aAAYV,MAAQA,KAAKgG,WAY9D,OAPI,EAAAxN,OAAA8L,OAAMpK,OAAO6D,SAAQ/D,EAAIkM,KAAKC,IAAInM,EAAGE,OAAO6D,SAC5C,EAAAvF,OAAA8L,OAAMpK,OAAO+D,UAAShE,EAAIiM,KAAKC,IAAIlM,EAAGC,OAAO+D,UAG7C,EAAAzF,OAAA8L,OAAMpK,OAAO2D,QAAO7D,EAAIkM,KAAKE,IAAIpM,EAAGE,OAAO2D,QAC3C,EAAArF,OAAA8L,OAAMpK,OAAO8D,OAAM/D,EAAIiM,KAAKE,IAAInM,EAAGC,OAAO8D,OAEtChE,EAAGC,GAGN,QAASoM,YAAWC,KAAwBC,SAAkBC,UACnE,GAAMxM,GAAIkM,KAAKO,MAAMF,SAAWD,KAAK,IAAMA,KAAK,GAC1CrM,EAAIiM,KAAKO,MAAMD,SAAWF,KAAK,IAAMA,KAAK,EAChD,QAAQtM,EAAGC,GAGN,QAASmC,UAASF,WACvB,MAAgC,SAAzBA,UAAUtD,MAAM4E,MAA4C,MAAzBtB,UAAUtD,MAAM4E,KAGrD,QAASnB,UAASH,WACvB,MAAgC,SAAzBA,UAAUtD,MAAM4E,MAA4C,MAAzBtB,UAAUtD,MAAM4E,KAIrD,QAASkJ,oBAAmBvN,EAAewN,gBAA0BC,eAC1E,GAAMC,UAAsC,gBAApBF,kBAA+B,EAAArO,QAAAwK,UAAS3J,EAAGwN,iBAAmB,IACtF,OAA+B,gBAApBA,kBAAiCE,UACrC,EAAAvO,QAAAuJ,sBAAqBgF,UAAY1N,EAAG0C,WAAAA,WAASC,YAAY8K,gBADH,KAKxD,QAASE,gBAAe5K,UAA0BlC,EAAWC,GAElE,GAAMJ,OAAQqC,UAAU6K,eAAiB7K,UAAUrC,MAC7CmN,UAAW,EAAAxO,OAAA8L,OAAMzK,MAAMoN,MAE7B,OAAID,UAGAhH,KAAMnE,WAAAA,WAASC,YAAYI,WAC3BvB,OAAQ,EAAGC,OAAQ,EACnBqM,MAAOjN,EAAGkN,MAAOjN,EACjBD,EAAGA,EAAGC,EAAGA,IAKT+F,KAAMnE,WAAAA,WAASC,YAAYI,WAC3BvB,OAAQX,EAAIH,MAAMoN,MAAOrM,OAAQX,EAAIJ,MAAMqN,MAC3CD,MAAOpN,MAAMoN,MAAOC,MAAOrN,MAAMqN,MACjClN,EAAGA,EAAGC,EAAGA,GAMR,QAAST,qBAAoB0C,UAAsB9C,UACxD,OACE4G,KAAM5G,SAAS4G,KACfhG,EAAGkC,UAAUrC,MAAMG,EAAIZ,SAASuB,OAChCV,EAAGiC,UAAUrC,MAAMI,EAAIb,SAASwB,OAChCD,OAAQvB,SAASuB,OACjBC,OAAQxB,SAASwB,OACjBqM,MAAO/K,UAAUrC,MAAMG,EACvBkN,MAAOhL,UAAUrC,MAAMI,GAK3B,QAASwL,aAAYvL,QACnB,OACE2D,KAAM3D,OAAO2D,KACbG,IAAK9D,OAAO8D,IACZD,MAAO7D,OAAO6D,MACdE,OAAQ/D,OAAO+D,uEA1GHzD,iBAAAA,yBAyCA6L,WAAAA,mBAMAjK,SAAAA,iBAIAC,SAAAA,iBAKAqK,mBAAAA,2BAOAI,eAAAA,uBAyBAtN,oBAAAA,mBAhGhB,IAAAhB,QAAAhB,oBAAA,GACAY,UAAAZ,oBAAA,gDACAc,QAAAd,oBAAA,k9DCFAW,OAAAX,oBAAA,0CACAY,UAAAZ,oBAAA,gDACAc,QAAAd,oBAAA,GAEAe,aAAAf,oBAAA,GACAgB,OAAAhB,oBAAA,GACAkB,KAAAlB,oBAAA,uCAKM2P,WACJC,OACEC,MAAO,aACPC,KAAM,YACNC,KAAM,YAERC,OACEH,MAAO,YACPC,KAAM,YACNC,KAAM,YAKNE,aAAeN,UAAUK,MAgBRtP,gaAyHnB2B,OACEH,UAAU,EAEVuN,MAAOS,IAAKR,MAAOQ,IACnBf,gBAAiB,YAanBgB,gBAA4C,SAACxO,GAK3C,GAHAL,MAAKF,MAAMgP,YAAYzO,IAGlBL,MAAKF,MAAMiP,eAAqC,gBAAb1O,GAAE2O,QAAoC,IAAb3O,EAAE2O,OAAc,OAAO,CAGxF,MAAIhP,MAAKF,MAAMmP,YACV5O,EAAE6O,iBAAkBC,QACtBnP,MAAKF,MAAMsP,UAAW,EAAA5P,QAAAwH,6BAA4B3G,EAAE6O,OAAQlP,MAAKF,MAAMsP,OAAQrM,WAAAA,WAASC,YAAThD,SAC/EA,MAAKF,MAAMuP,SAAU,EAAA7P,QAAAwH,6BAA4B3G,EAAE6O,OAAQlP,MAAKF,MAAMuP,OAAQtM,WAAAA,WAASC,YAAThD,SAHjF,CAUA,GAAM6N,kBAAkB,EAAArO,QAAA6K,oBAAmBhK,EAC3CL,OAAKW,UAAUkN,gBAAAA,iBAGf,IAAMxL,WAAW,EAAA5C,aAAAmO,oBAAmBvN,EAAGwN,gBAAtB7N,MACjB,IAAgB,MAAZqC,SAAJ,CAvBiD,GAwB1CnB,GAAQmB,SAARnB,EAAGC,EAAKkB,SAALlB,EAGJmO,WAAY,EAAA7P,aAAAuO,gBAAAhO,MAAqBkB,EAAGC,IAE1C,EAAAZ,MAAAA,YAAI,qCAAsC+O,YAG1C,EAAA/O,MAAAA,YAAI,UAAWP,MAAKF,MAAMW,QAC1B,IAAMsB,cAAe/B,MAAKF,MAAMW,QAAQJ,EAAGiP,UACvCvN,iBAAiB,IAIjB/B,MAAKF,MAAMyP,uBAAsB,EAAA/P,QAAA8K,uBAKrCtK,MAAKW,UACHC,UAAU,EAEVuN,MAAOjN,EACPkN,MAAOjN,KAMT,EAAA3B,QAAA4H,UAAS8B,SAAUyF,aAAaH,KAAMxO,MAAKwP,aAC3C,EAAAhQ,QAAA4H,UAAS8B,SAAUyF,aAAaF,KAAMzO,MAAKyP,0BAG7CD,WAAuC,SAACnP,GAGtC,GAAMgC,WAAW,EAAA5C,aAAAmO,oBAAmBvN,EAAGL,MAAKe,MAAM8M,gBAAjC7N,MACjB,IAAgB,MAAZqC,SAAJ,CAJ4C,GAKvCnB,GAAQmB,SAARnB,EAAGC,EAAKkB,SAALlB,CAKR,IAAI8E,MAAMC,QAAQlG,MAAKF,MAAM0N,MAAO,CAClC,GAAI3L,QAASX,EAAIlB,MAAKe,MAAMoN,MAAOrM,OAASX,EAAInB,MAAKe,MAAMqN,MADzBsB,aAEf,EAAAjQ,aAAA8N,YAAWvN,MAAKF,MAAM0N,KAAM3L,OAAQC,QAFrB6N,aAAA/N,eAAA8N,YAAA,EAGlC,IADC7N,OAFiC8N,aAAA,GAEzB7N,OAFyB6N,aAAA,IAG7B9N,SAAWC,OAAQ,MACxBZ,GAAIlB,MAAKe,MAAMoN,MAAQtM,OAAQV,EAAInB,MAAKe,MAAMqN,MAAQtM,OAGxD,GAAMwN,YAAY,EAAA7P,aAAAuO,gBAAAhO,MAAqBkB,EAAGC,IAE1C,EAAAZ,MAAAA,YAAI,gCAAiC+O,UAGrC,IAAMvN,cAAe/B,MAAKF,MAAMgB,OAAOT,EAAGiP,UAC1C,OAAIvN,iBAAiB,MACnB/B,OAAKyP,eAAe,GAAIG,iBAI1B5P,OAAKW,UACHwN,MAAOjN,EACPkN,MAAOjN,YAIXsO,eAA2C,SAACpP,GAC1C,GAAKL,MAAKe,MAAMH,SAAhB,CAEA,GAAMyB,WAAW,EAAA5C,aAAAmO,oBAAmBvN,EAAGL,MAAKe,MAAM8M,gBAAjC7N,MACjB,IAAgB,MAAZqC,SAAJ,CAJgD,GAKzCnB,GAAQmB,SAARnB,EAAGC,EAAKkB,SAALlB,EACJmO,WAAY,EAAA7P,aAAAuO,gBAAAhO,MAAqBkB,EAAGC,EAGtCnB,OAAKF,MAAMyP,uBAAsB,EAAA/P,QAAAkL,2BAErC,EAAAnK,MAAAA,YAAI,oCAAqC+O,WAGzCtP,MAAKW,UACHC,UAAU,EACVuN,MAAOS,IACPR,MAAOQ,MAIT5O,MAAKF,MAAMoC,OAAO7B,EAAGiP,YAGrB,EAAA/O,MAAAA,YAAI,qCACJ,EAAAf,QAAAiI,aAAYyB,SAAUyF,aAAaH,KAAMxO,MAAKwP,aAC9C,EAAAhQ,QAAAiI,aAAYyB,SAAUyF,aAAaF,KAAMzO,MAAKyP,yBAGhDX,YAAwC,SAACzO,GAGvC,MAFAsO,cAAeN,UAAUK,MAElB1O,MAAK6O,gBAAgBxO,UAG9BwP,UAAsC,SAACxP,GAGrC,MAFAsO,cAAeN,UAAUK,MAElB1O,MAAKyP,eAAepP,UAI7ByP,aAAyC,SAACzP,GAIxC,MAFAsO,cAAeN,UAAUC,MAElBtO,MAAK6O,gBAAgBxO,UAG9B0P,WAAuC,SAAC1P,GAItC,MAFAsO,cAAeN,UAAUC,MAElBtO,MAAKyP,eAAepP,iLAvJ3B,EAAAb,QAAAiI,aAAYyB,SAAUmF,UAAUK,MAAMF,KAAMjQ,KAAKiR,aACjD,EAAAhQ,QAAAiI,aAAYyB,SAAUmF,UAAUC,MAAME,KAAMjQ,KAAKiR,aACjD,EAAAhQ,QAAAiI,aAAYyB,SAAUmF,UAAUK,MAAMD,KAAMlQ,KAAKkR,iBACjD,EAAAjQ,QAAAiI,aAAYyB,SAAUmF,UAAUC,MAAMG,KAAMlQ,KAAKkR,gBAC7ClR,KAAKuB,MAAMyP,uBAAsB,EAAA/P,QAAAkL,2DAyJrC,MAAO3G,SAAAA,WAAMI,aAAaJ,QAAAA,WAAMK,SAASC,KAAK9F,KAAKuB,MAAM8D,WACvDV,OAAO,EAAA1D,QAAAoL,YAAWrM,KAAKuB,MAAM8D,SAAS9D,MAAMoD,OAI5C4L,YAAavQ,KAAKuQ,YAClBgB,aAAcvR,KAAKuR,aACnBD,UAAWtR,KAAKsR,UAChBE,WAAYxR,KAAKwR,gCAxSoBhM,QAAAA,WAAMQ,UAA5BnF,eAEZoF,YAAc,gBAFFpF,cAIZqF,WAOLsK,cAAe1P,OAAAsF,UAAUqL,KAMzBf,SAAU5P,OAAAsF,UAAUqL,KAOpBT,qBAAsBlQ,OAAAsF,UAAUqL,KAKhCxC,KAAMnO,OAAAsF,UAAUsL,QAAQ5Q,OAAAsF,UAAUK,QAsBlCoK,OAAQ/P,OAAAsF,UAAUS,OAsBlBiK,OAAQhQ,OAAAsF,UAAUS,OAMlB3E,QAASpB,OAAAsF,UAAU0G,KAMnBvK,OAAQzB,OAAAsF,UAAU0G,KAMlBnJ,OAAQ7C,OAAAsF,UAAU0G,KAMlByD,YAAazP,OAAAsF,UAAU0G,KAKvB3H,UAAAhE,OAAA2F,UACAnC,MAAAxD,OAAA2F,UACAf,UAAA5E,OAAA2F,WAxGiBjG,cA2GZkG,cACLyJ,eAAe,EACfM,OAAQ,KACRJ,UAAU,EACVM,sBAAsB,EACtBH,OAAQ,KACR5B,KAAM,KACNlJ,UAAW,KACX7D,QAAS,aACTK,OAAQ,aACRoB,OAAQ,aACR4M,YAAa,iCAtHI1P,wECxCN,SAAS8Q,kFAAAA","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b668cf52fd8889146cd5","../index.js","../lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../~/classnames/index.js","../lib/utils/domFns.es6","../lib/utils/shims.es6","../lib/utils/getPrefix.es6","../lib/utils/positionFns.es6","../lib/DraggableCore.es6","../lib/utils/log.es6"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__webpack_require__","moduleId","installedModules","id","loaded","modules","call","m","c","p","DraggableCore","_react","_reactDom","_classnames","_domFns","_positionFns","_shims","_DraggableCore","_log","Draggable","props","_classCallCheck","_this","_possibleConstructorReturn","Object","getPrototypeOf","onDragStart","e","coreData","_log2","shouldStart","onStart","createDraggableData","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","_x","_y","slackX","slackY","_getBoundPosition","getBoundPosition","_getBoundPosition2","_slicedToArray","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","_this$props$position","_x2","_y2","defaultPosition","isElementSVG","console","warn","global","SVGElement","_reactDom2","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","canDragX","canDragY","createSVGTransform","createCSSTransform","className","_classnames2","children","react-draggable-dragging","react-draggable-dragged","_react2","createElement","_DraggableCore2","_extends","cloneElement","Children","only","transform","Component","displayName","propTypes","axis","PropTypes","oneOf","oneOfType","shape","left","number","right","top","bottom","string","dontSetMe","defaultProps","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","apply","key","hasOwn","join","hasOwnProperty","undefined","matchesSelector","el","selector","matchesSelectorFunc","findInArray","method","isFunction","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","window","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParentOf","evt","offsetParent","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","getAttribute","setAttribute","userSelectStyle","removeUserSelectStyles","replace","styleHacks","childStyle","touchAction","userSelectPrefix","getPrefix","userSelect","browserPrefixToStyle","array","callback","func","prototype","toString","isNum","num","isNaN","int","a","parseInt","propName","componentName","Error","prop","documentElement","prefixes","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","cloneBounds","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","_pendingState","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_snapToGrid","_snapToGrid2","MouseEvent","err","createEvent","initMouseEvent","onMouseUp","onTouchStart","onTouchEnd","bool","arrayOf","log"],"mappings":"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","file":"dist/react-draggable.min.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 5654367f..cc4e038a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.1.1", + "version": "2.1.2", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 4bba79979fca94c26dd05d0f03e6fb009bbea268 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 6 Jun 2016 15:42:36 -0500 Subject: [PATCH 192/412] Flow: Force-cast to MouseEvent. See https://github.com/facebook/flow/issues/1898#issuecomment-224075965 --- lib/DraggableCore.es6 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 1fd44faf..3c4d9b43 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -263,11 +263,10 @@ export default class DraggableCore extends React.Component { this.handleDragStop(new MouseEvent('mouseup')); } catch (err) { // Old browsers - const event = document.createEvent('MouseEvents'); + const event = ((document.createEvent('MouseEvents'): any): MouseEvent); // I see why this insanity was deprecated // $FlowIgnore event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); - // $FlowIgnore this.handleDragStop(event); } return; From 4fe858a63eb7f85d939122a528de65e4abf462eb Mon Sep 17 00:00:00 2001 From: billcz Date: Tue, 21 Jun 2016 14:11:44 +0800 Subject: [PATCH 193/412] defaultPosition => position --- lib/Draggable.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index 26c1fcc2..3a4059e7 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -121,7 +121,7 @@ export default class Draggable extends React.Component { * let App = React.createClass({ * render: function () { * return ( - * + * *
I start with transformX: 25px and transformY: 25px;
*
* ); From 87b28fed495699ccd091dfc602539eabd0260319 Mon Sep 17 00:00:00 2001 From: Nik Nyby Date: Thu, 23 Jun 2016 13:21:10 -0400 Subject: [PATCH 194/412] Add missing comma in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 40e3a540..5eb7882c 100644 --- a/README.md +++ b/README.md @@ -253,7 +253,7 @@ on itself and thus must have callbacks attached to be useful. handle: string, onStart: DraggableEventHandler, onDrag: DraggableEventHandler, - onStop: DraggableEventHandler + onStop: DraggableEventHandler, onMouseDown: (e: MouseEvent) => void } ``` From 510d27c55bb475cf5d6cee917754b1fabb601838 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Tue, 19 Jul 2016 10:38:46 -0700 Subject: [PATCH 195/412] Fix propType tests for latest React (v15.2.0) (#176) * Add missing comma in readme * :white_check_mark: Fix propType tests latest React React 15.2.0 changed propType validation warning text: https://github.com/facebook/react/blob/master/CHANGELOG.md#1520-july-1-2 016 --- specs/draggable.spec.jsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 7ef79b8b..a0b68a7b 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -122,7 +122,11 @@ describe('react-draggable', function () { TestUtils.renderIntoDocument(drag); - expect(console.error).toHaveBeenCalledWith('Warning: Failed propType: Invalid prop className passed to Draggable - do not set this, set it on the child.'); + expect( + console.error.calls.argsFor(0)[0].replace('propType:', 'prop type:').split('\n')[0] + ).toBe( + 'Warning: Failed prop type: Invalid prop className passed to Draggable - do not set this, set it on the child.' + ); }); it('should throw when setting style', function () { @@ -130,7 +134,11 @@ describe('react-draggable', function () { TestUtils.renderIntoDocument(drag); - expect(console.error).toHaveBeenCalledWith('Warning: Failed propType: Invalid prop style passed to Draggable - do not set this, set it on the child.'); + expect( + console.error.calls.argsFor(0)[0].replace('propType:', 'prop type:').split('\n')[0] + ).toBe( + 'Warning: Failed prop type: Invalid prop style passed to Draggable - do not set this, set it on the child.' + ); }); it('should throw when setting transform', function () { @@ -138,7 +146,11 @@ describe('react-draggable', function () { TestUtils.renderIntoDocument(drag); - expect(console.error).toHaveBeenCalledWith('Warning: Failed propType: Invalid prop transform passed to Draggable - do not set this, set it on the child.'); + expect( + console.error.calls.argsFor(0)[0].replace('propType:', 'prop type:').split('\n')[0] + ).toBe( + 'Warning: Failed prop type: Invalid prop transform passed to Draggable - do not set this, set it on the child.' + ); }); it('should call onStart when dragging begins', function () { From 231afba30d1d319f8cfe026102347cd84b8642cd Mon Sep 17 00:00:00 2001 From: Avichal Date: Tue, 19 Jul 2016 23:14:02 +0530 Subject: [PATCH 196/412] Update readme (#175) Fixed README typo. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5eb7882c..34a156bf 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ View the [Demo](http://mzabriskie.github.io/react-draggable/example/) and its [source](/example/index.html) for more. ```js -import React from 'react'); +import React from 'react'; import ReactDOM from 'react-dom'; import Draggable from 'react-draggable'; From 7b2f4d5d68b34e76d2f5c29916892bbd07d38288 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 Jul 2016 12:47:02 -0500 Subject: [PATCH 197/412] Fix Flow 0.28 errors with parameterized types --- lib/Draggable.es6 | 4 ++-- lib/DraggableCore.es6 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index 3a4059e7..56da57a7 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -21,7 +21,7 @@ type DraggableState = { type ConstructorProps = { position: { x: number, y: number }, defaultPosition: { x: number, y: number } -} +}; // // Define @@ -288,7 +288,7 @@ export default class Draggable extends React.Component { this.setState(newState); }; - render(): React.Element { + render(): React.Element { let style = {}, svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging. diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 3c4d9b43..832c95f8 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -334,7 +334,7 @@ export default class DraggableCore extends React.Component { return this.handleDragStop(e); }; - render(): React.Element { + render(): React.Element { // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.cloneElement(React.Children.only(this.props.children), { From f63f3d17785a2c6b9dd0b36a6d7752594cc13e24 Mon Sep 17 00:00:00 2001 From: "Aeneas Rekkas (arekkas)" Date: Sun, 17 Jul 2016 18:45:03 +0200 Subject: [PATCH 198/412] Resolves regression issue by introducing `offsetParent` to Allows nodes to use an arbitrary node as origin instead of the parent. This is useful, when the parent's position is changing. When used, resolves #170 This issue was introduced by a398097ebcc2cbb4df5582a8a3f42f51d21745a0 --- README.md | 1 + lib/DraggableCore.es6 | 11 +++++++++++ lib/utils/domFns.es6 | 7 ++++--- lib/utils/positionFns.es6 | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 34a156bf..cf0f9a2d 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ on itself and thus must have callbacks attached to be useful. cancel: string, disabled: boolean, enableUserSelectHack: boolean, + offsetParent: HTMLElement, grid: [number, number], handle: string, onStart: DraggableEventHandler, diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 832c95f8..64e412fa 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -66,6 +66,16 @@ export default class DraggableCore extends React.Component { */ enableUserSelectHack: PropTypes.bool, + /** + * `offsetParent`, if set, uses the passed DOM node to compute drag offsets + * instead of using the parent node. + */ + offsetParent: function(props, propName) { + if (process.browser && props[propName] && props[propName].nodeType !== 1) { + throw new Error('Draggable\'s offsetParent must be a DOM Node.'); + } + }, + /** * `grid` specifies the x and y that dragging should snap to. */ @@ -152,6 +162,7 @@ export default class DraggableCore extends React.Component { cancel: null, disabled: false, enableUserSelectHack: true, + offsetParent: null, handle: null, grid: null, transform: null, diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index 9afa67a5..b06b6be7 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -2,6 +2,7 @@ import {findInArray, isFunction, int} from './shims'; import browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix'; +import type DraggableCore from '../DraggableCore'; import type {ControlPosition} from './types'; let matchesSelectorFunc = ''; @@ -95,9 +96,9 @@ export function innerWidth(node: HTMLElement): number { } // Get from offsetParent -export function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition { - const offsetParent = node.offsetParent || document.body; - const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect(); +export function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}, draggableCore: DraggableCore): ControlPosition { + const offsetParent = draggableCore.props.offsetParent || node.offsetParent || document.body; + const offsetParentRect = offsetParent ? {left: 0, top: 0} : offsetParent.getBoundingClientRect(); const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index b2df07b4..3b88b7c4 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -66,7 +66,7 @@ export function canDragY(draggable: Draggable): boolean { export function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition { const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null; if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch - return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore)); + return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore), draggableCore); } // Create an data object exposed by 's events From 6855c3828ad0bfe29db9d7c0ce3c4ea2b0b30a4a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 Jul 2016 14:31:41 -0500 Subject: [PATCH 199/412] Refactor `offsetParent` prop & add test --- README.md | 5 +++ lib/utils/domFns.es6 | 8 ++--- lib/utils/positionFns.es6 | 8 +++-- specs/draggable.spec.jsx | 76 +++++++++++++++++++++++++++++++++------ 4 files changed, 80 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index cf0f9a2d..3d9acedd 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,11 @@ grid: [number, number], // Example: '.handle' handle: string, +// If desired, you can provide your own offsetParent for drag calculations. +// By default, we use the Draggable's offsetParent. This can be useful for elements +// with odd display types or floats. +offsetParent: HTMLElement, + // Called whenever the user mouses down. Called regardless of handle or // disabled status. onMouseDown: (e: MouseEvent) => void, diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index b06b6be7..7ae4ad5a 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -2,7 +2,6 @@ import {findInArray, isFunction, int} from './shims'; import browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix'; -import type DraggableCore from '../DraggableCore'; import type {ControlPosition} from './types'; let matchesSelectorFunc = ''; @@ -96,9 +95,10 @@ export function innerWidth(node: HTMLElement): number { } // Get from offsetParent -export function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}, draggableCore: DraggableCore): ControlPosition { - const offsetParent = draggableCore.props.offsetParent || node.offsetParent || document.body; - const offsetParentRect = offsetParent ? {left: 0, top: 0} : offsetParent.getBoundingClientRect(); +export function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: ?HTMLElement): ControlPosition { + if (!offsetParent) offsetParent = document.body; + const isBody = offsetParent === offsetParent.ownerDocument.body; + const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect(); const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index 3b88b7c4..e1591bdc 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -1,7 +1,7 @@ // @flow import {isNum, int} from './shims'; import ReactDOM from 'react-dom'; -import {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns'; +import {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns'; import type Draggable from '../Draggable'; import type {Bounds, ControlPosition, DraggableData} from './types'; @@ -66,7 +66,11 @@ export function canDragY(draggable: Draggable): boolean { export function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition { const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null; if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch - return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore), draggableCore); + // User can provide an offsetParent if desired. + const offsetParent = draggableCore.props.offsetParent || + ReactDOM.findDOMNode(draggableCore).offsetParent || + document.body; + return offsetXYFromParent(touchObj || e, offsetParent); } // Create an data object exposed by 's events diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index a0b68a7b..a8f53e5a 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -456,32 +456,74 @@ describe('react-draggable', function () { }); it('should modulate position on scroll', function (done) { - // This test fails in karma under Chrome & Firefox, positioning quirks - // FIXME: Why? Chrome reports 2x scrollTo, Phantom reports 0x, Firefox reports 1x as it should - var is_ff = navigator.userAgent.toLowerCase().indexOf('Firefox') > -1; - if (!is_ff) return done(); - - var dragCalled = false; + let dragCalled = false; function onDrag(e, coreEvent) { assert(coreEvent.deltaY === 500); dragCalled = true; } drag = TestUtils.renderIntoDocument(
); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); + + // Create a container we can scroll. I'm doing it this way so we can still access . + // Enzyme (airbnb project) would make this a lot easier. + const fragment = fragmentFromString(` +
+
+
+
+ `); + transplantNodeInto(node, fragment, (f) => f.children[0]); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); assert(drag.state.dragging === true); - document.body.style.height = '10000px'; - window.scrollTo(0, 500); - TestUtils.Simulate.mouseUp(node, {clientX: 0, clientY: 0}); + // Scroll the inner container & trigger a scroll + fragment.scrollTop = 500; + mouseMove(0, 0); + TestUtils.Simulate.mouseUp(node); setTimeout(function() { + assert(drag.state.dragging === false); assert(dragCalled === true); - assert(drag.state.clientY === 500); + assert(drag.state.y === 500); + // Cleanup + document.body.removeChild(fragment); done(); }, 50); + }); + + it('should respect offsetParent on nested div scroll', function (done) { + let dragCalled = false; + function onDrag(e, coreEvent) { + dragCalled = true; + // Because the offsetParent is the body, we technically haven't moved at all relative to it + assert(coreEvent.deltaY === 0); + } + drag = TestUtils.renderIntoDocument(
); + const node = ReactDOM.findDOMNode(drag); + + // Create a container we can scroll. I'm doing it this way so we can still access . + // Enzyme (airbnb project) would make this a lot easier. + const fragment = fragmentFromString(` +
+
+
+
+ `); + transplantNodeInto(node, fragment, (f) => f.children[0]); + + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + fragment.scrollTop = 500; + + mouseMove(0, 0); + TestUtils.Simulate.mouseUp(node); + setTimeout(function() { + assert(dragCalled); + // Cleanup + document.body.removeChild(fragment); + done(); + }, 50); }); describe('draggable callbacks', function () { @@ -597,3 +639,15 @@ function simulateMovementFromTo(drag, fromX, fromY, toX, toY) { mouseMove(toX, toY); TestUtils.Simulate.mouseUp(node); } + +function fragmentFromString(strHTML) { + var temp = document.createElement('div'); + temp.innerHTML = strHTML; + return temp.children[0]; +} + +function transplantNodeInto(node, into, selector) { + node.parentNode.removeChild(node); + selector(into).appendChild(node); + document.body.appendChild(into); +} From 003e1a4243373fb6a014aa5fbef5c352eeffc048 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 Jul 2016 14:35:43 -0500 Subject: [PATCH 200/412] Karma test cleanup --- karma.conf.js | 13 ++++++--- package.json | 56 +++++++++++++++++------------------ specs/draggable.spec.jsx | 63 ++++++++++++++++++++-------------------- 3 files changed, 69 insertions(+), 63 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index 56147dd6..1b53e642 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -19,8 +19,6 @@ module.exports = function(config) { }, webpack: { - cache: true, - devtool: 'eval', module: { loaders: [ { @@ -51,6 +49,7 @@ module.exports = function(config) { webpackServer: { stats: { + chunks: false, colors: true } }, @@ -65,16 +64,22 @@ module.exports = function(config) { autoWatch: false, - browsers: ['PhantomJS', 'Firefox', process.env.TRAVIS ? 'Chrome_travis_ci' : 'Chrome'], + browsers: ['PhantomJS_custom', 'Firefox', process.env.TRAVIS ? 'Chrome_travis_ci' : 'Chrome'], customLaunchers: { Chrome_travis_ci: { base: 'Chrome', flags: ['--no-sandbox'] + }, + PhantomJS_custom: { + base: 'PhantomJS', + options: { + viewportSize: {width: 1024, height: 768} + } } }, - singleRun: false, + singleRun: true, plugins: [ require('karma-jasmine'), diff --git a/package.json b/package.json index cc4e038a..b7aab2b3 100644 --- a/package.json +++ b/package.json @@ -27,45 +27,45 @@ }, "homepage": "https://github.com/mzabriskie/react-draggable", "devDependencies": { - "babel-cli": "^6.5.1", - "babel-core": "^6.5.1", - "babel-eslint": "^6.0.2", - "babel-loader": "^6.2.2", - "babel-plugin-espower": "^2.1.2", - "babel-plugin-transform-flow-comments": "^6.7.0", - "babel-preset-es2015": "^6.5.0", - "babel-preset-react": "^6.5.0", + "babel-cli": "^6.10.1", + "babel-core": "^6.10.4", + "babel-eslint": "^6.1.2", + "babel-loader": "^6.2.4", + "babel-plugin-espower": "^2.3.1", + "babel-plugin-transform-flow-comments": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-react": "^6.11.1", "babel-preset-stage-1": "^6.5.0", - "eslint": "^2.7.0", - "eslint-plugin-react": "^4.3.0", + "eslint": "^3.1.1", + "eslint-plugin-react": "^5.2.2", "jasmine-core": "^2.4.1", "json-loader": "^0.5.4", - "karma": "^0.13.14", - "karma-chrome-launcher": "^0.2.1", - "karma-cli": "0.1.2", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^1.0.0", - "karma-phantomjs-shim": "^1.1.1", + "karma": "^1.1.1", + "karma-chrome-launcher": "^1.0.1", + "karma-cli": "1.0.1", + "karma-firefox-launcher": "^1.0.0", + "karma-jasmine": "^1.0.2", + "karma-phantomjs-launcher": "^1.0.1", + "karma-phantomjs-shim": "^1.4.0", "karma-webpack": "^1.7.0", - "lodash": "^4.11.1", + "lodash": "^4.13.1", "open": "0.0.5", - "phantomjs-prebuilt": ">=1.9", + "phantomjs-prebuilt": ">=2.1", "power-assert": "^1.4.1", - "pre-commit": "^1.1.2", - "react": "^15.0.0", - "react-dom": "^15.0.0", - "semver": "^5.0.3", - "static-server": "^2.0.0", - "uglify-js": "^2.5.0", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" + "pre-commit": "^1.1.3", + "react": "^15.2.1", + "react-dom": "^15.2.1", + "semver": "^5.3.0", + "static-server": "^2.0.3", + "uglify-js": "^2.7.0", + "webpack": "^1.13.1", + "webpack-dev-server": "^1.14.1" }, "precommit": [ "lint", "test" ], "dependencies": { - "classnames": "^2.2.0" + "classnames": "^2.2.5" } } \ No newline at end of file diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index a8f53e5a..066d4b42 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -50,7 +50,7 @@ describe('react-draggable', function () { it('should pass style and className properly from child', function () { drag = (
); - var node = renderToNode(drag); + const node = renderToNode(drag); if ('touchAction' in document.body.style) { assert(node.getAttribute('style').indexOf('touch-action: none') >= 0); } @@ -62,11 +62,11 @@ describe('react-draggable', function () { // NOTE: this runs a shallow renderer, which DOES NOT actually render it('should pass handle on to ', function () { drag =
; - var renderer = TestUtils.createRenderer(); + const renderer = TestUtils.createRenderer(); renderer.render(drag); - var output = renderer.getRenderOutput(); + const output = renderer.getRenderOutput(); - var expected = ( + const expected = (
@@ -166,7 +166,7 @@ describe('react-draggable', function () { }); it('should call onStop when dragging ends', function () { - var called = false; + let called = false; drag = TestUtils.renderIntoDocument(
@@ -179,7 +179,7 @@ describe('react-draggable', function () { }); it('should not call onStart when dragging begins and disabled', function () { - var called = false; + let called = false; drag = TestUtils.renderIntoDocument(
@@ -191,7 +191,7 @@ describe('react-draggable', function () { }); it('should immediately call onStop if onDrag returns false', function () { - var called = false; + let called = false; drag = TestUtils.renderIntoDocument(
@@ -207,65 +207,65 @@ describe('react-draggable', function () { }); it('should render with style translate() for DOM nodes', function () { - var dragged = false; + let dragged = false; drag = TestUtils.renderIntoDocument(
); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); simulateMovementFromTo(drag, 0, 0, 100, 100); - var style = node.getAttribute('style'); + const style = node.getAttribute('style'); assert(dragged === true); assert(style.indexOf('transform: translate(100px, 100px);') >= 0); }); it('should honor "x" axis', function () { - var dragged = false; + let dragged = false; drag = TestUtils.renderIntoDocument(
); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); simulateMovementFromTo(drag, 0, 0, 100, 100); - var style = node.getAttribute('style'); + const style = node.getAttribute('style'); assert(dragged === true); assert(style.indexOf('transform: translate(100px, 0px);') >= 0); }); it('should honor "y" axis', function () { - var dragged = false; + let dragged = false; drag = TestUtils.renderIntoDocument(
); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); simulateMovementFromTo(drag, 0, 0, 100, 100); - var style = node.getAttribute('style'); + const style = node.getAttribute('style'); assert(dragged === true); assert(style.indexOf('transform: translate(0px, 100px);') >= 0); }); it('should honor "none" axis', function () { - var dragged = false; + let dragged = false; drag = TestUtils.renderIntoDocument(
); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); simulateMovementFromTo(drag, 0, 0, 100, 100); - var style = node.getAttribute('style'); + const style = node.getAttribute('style'); assert(dragged === true); assert(style.indexOf('transform: translate(0px, 0px);') >= 0); }); @@ -297,15 +297,15 @@ describe('react-draggable', function () { ); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); simulateMovementFromTo(drag, 0, 0, 100, 100); - var transform = node.getAttribute('transform'); + const transform = node.getAttribute('transform'); assert(transform.indexOf('translate(100,100)') >= 0); }); it('should add and remove user-select styles', function () { - var userSelectStyleStr = `;${userSelectStyle}: none;`; + const userSelectStyleStr = `;${userSelectStyle}: none;`; drag = TestUtils.renderIntoDocument( @@ -313,7 +313,7 @@ describe('react-draggable', function () { ); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); assert(document.body.getAttribute('style') === ''); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); @@ -330,7 +330,7 @@ describe('react-draggable', function () { ); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); assert(document.body.getAttribute('style') === ''); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); @@ -348,7 +348,7 @@ describe('react-draggable', function () { ); - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); assert(document.body.getAttribute('style') === ''); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); @@ -524,6 +524,7 @@ describe('react-draggable', function () { document.body.removeChild(fragment); done(); }, 50); + }); }); describe('draggable callbacks', function () { @@ -586,7 +587,7 @@ describe('react-draggable', function () { it('should result with invariant when there isn\'t a child', function () { drag = (); - var error = false; + let error = false; try { TestUtils.renderIntoDocument(drag); } catch (e) { @@ -599,7 +600,7 @@ describe('react-draggable', function () { it('should result with invariant if there\'s more than a single child', function () { drag = (
); - var error = false; + let error = false; try { TestUtils.renderIntoDocument(drag); } catch (e) { @@ -624,7 +625,7 @@ function renderToNode(component) { // Would love to new MouseEvent() here but it doesn't work with PhantomJS / old browsers. // var e = new MouseEvent('mousemove', {clientX: 100, clientY: 100}); function mouseMove(x, y) { - var evt = document.createEvent('MouseEvents'); + const evt = document.createEvent('MouseEvents'); evt.initMouseEvent('mousemove', true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null); document.dispatchEvent(evt); @@ -633,7 +634,7 @@ function mouseMove(x, y) { function simulateMovementFromTo(drag, fromX, fromY, toX, toY) { - var node = ReactDOM.findDOMNode(drag); + const node = ReactDOM.findDOMNode(drag); TestUtils.Simulate.mouseDown(node, {clientX: fromX, clientY: fromX}); mouseMove(toX, toY); From ef126bcaaf7f40ac5e7f19914f2b9661279c2d27 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Mon, 18 Jul 2016 13:36:31 -0700 Subject: [PATCH 201/412] Use window/document relative to DOM element Use the ownerDocument and window of the DOM element being manipulated rather than the global window and document objects. This makes react-draggable work with a tool like https://github.com/ryanseddon/react-frame-component --- lib/DraggableCore.es6 | 34 ++++++++++++++++++++-------------- lib/utils/domFns.es6 | 24 ++++++++++++------------ lib/utils/positionFns.es6 | 13 +++++++------ 3 files changed, 39 insertions(+), 32 deletions(-) diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 64e412fa..1e630dd3 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -182,11 +182,12 @@ export default class DraggableCore extends React.Component { componentWillUnmount() { // Remove any leftover event handlers. Remove both touch and mouse handlers in case // some browser quirk caused a touch event to fire during a mouse move, or vice versa. - removeEvent(document, eventsFor.mouse.move, this.handleDrag); - removeEvent(document, eventsFor.touch.move, this.handleDrag); - removeEvent(document, eventsFor.mouse.stop, this.handleDragStop); - removeEvent(document, eventsFor.touch.stop, this.handleDragStop); - if (this.props.enableUserSelectHack) removeUserSelectStyles(); + const {ownerDocument} = ReactDOM.findDOMNode(this); + removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag); + removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag); + removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); + removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop); + if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body); } handleDragStart: EventHandler = (e) => { @@ -196,11 +197,15 @@ export default class DraggableCore extends React.Component { // Only accept left-clicks. if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; + // Get nodes. Be sure to grab relative document (could be iframed) + const domNode = ReactDOM.findDOMNode(this); + const {ownerDocument} = domNode; + // Short circuit if handle or cancel prop was provided and selector doesn't match. if (this.props.disabled || - (!(e.target instanceof Node)) || - (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, ReactDOM.findDOMNode(this))) || - (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, ReactDOM.findDOMNode(this)))) { + (!(e.target instanceof ownerDocument.defaultView.Node)) || + (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) || + (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) { return; } @@ -227,7 +232,7 @@ export default class DraggableCore extends React.Component { // Add a style to the body to disable user-select. This prevents text from // being selected all over the page. - if (this.props.enableUserSelectHack) addUserSelectStyles(); + if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body); // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us @@ -242,8 +247,8 @@ export default class DraggableCore extends React.Component { // Add events to the document directly so we catch when the user's mouse/touch moves outside of // this element. We use different events depending on whether or not we have detected that this // is a touch-capable device. - addEvent(document, dragEventFor.move, this.handleDrag); - addEvent(document, dragEventFor.stop, this.handleDragStop); + addEvent(ownerDocument, dragEventFor.move, this.handleDrag); + addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop); }; handleDrag: EventHandler = (e) => { @@ -298,7 +303,7 @@ export default class DraggableCore extends React.Component { const coreEvent = createCoreData(this, x, y); // Remove user-select hack - if (this.props.enableUserSelectHack) removeUserSelectStyles(); + if (this.props.enableUserSelectHack) removeUserSelectStyles(ReactDOM.findDOMNode(this).ownerDocument.body); log('DraggableCore: handleDragStop: %j', coreEvent); @@ -313,9 +318,10 @@ export default class DraggableCore extends React.Component { this.props.onStop(e, coreEvent); // Remove event handlers + const {ownerDocument} = ReactDOM.findDOMNode(this); log('DraggableCore: Removing handlers'); - removeEvent(document, dragEventFor.move, this.handleDrag); - removeEvent(document, dragEventFor.stop, this.handleDragStop); + removeEvent(ownerDocument, dragEventFor.move, this.handleDrag); + removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop); }; onMouseDown: EventHandler = (e) => { diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index 7ae4ad5a..0e1a6b79 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -63,7 +63,7 @@ export function outerHeight(node: HTMLElement): number { // This is deliberately excluding margin for our calculations, since we are using // offsetTop which is including margin. See getBoundPosition let height = node.clientHeight; - const computedStyle = window.getComputedStyle(node); + const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); height += int(computedStyle.borderTopWidth); height += int(computedStyle.borderBottomWidth); return height; @@ -73,14 +73,14 @@ export function outerWidth(node: HTMLElement): number { // This is deliberately excluding margin for our calculations, since we are using // offsetLeft which is including margin. See getBoundPosition let width = node.clientWidth; - const computedStyle = window.getComputedStyle(node); + const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); width += int(computedStyle.borderLeftWidth); width += int(computedStyle.borderRightWidth); return width; } export function innerHeight(node: HTMLElement): number { let height = node.clientHeight; - const computedStyle = window.getComputedStyle(node); + const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); height -= int(computedStyle.paddingTop); height -= int(computedStyle.paddingBottom); return height; @@ -88,15 +88,14 @@ export function innerHeight(node: HTMLElement): number { export function innerWidth(node: HTMLElement): number { let width = node.clientWidth; - const computedStyle = window.getComputedStyle(node); + const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); width -= int(computedStyle.paddingLeft); width -= int(computedStyle.paddingRight); return width; } // Get from offsetParent -export function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: ?HTMLElement): ControlPosition { - if (!offsetParent) offsetParent = document.body; +export function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition { const isBody = offsetParent === offsetParent.ownerDocument.body; const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect(); @@ -132,14 +131,15 @@ const userSelectPrefix = getPrefix('user-select'); const userSelect = browserPrefixToStyle('user-select', userSelectPrefix); const userSelectStyle = `;${userSelect}: none;`; -export function addUserSelectStyles() { - const style = document.body.getAttribute('style') || ''; - document.body.setAttribute('style', style + userSelectStyle); +// Note we're passing `document` b/c we could be iframed +export function addUserSelectStyles(body: HTMLElement) { + const style = body.getAttribute('style') || ''; + body.setAttribute('style', style + userSelectStyle); } -export function removeUserSelectStyles() { - const style = document.body.getAttribute('style') || ''; - document.body.setAttribute('style', style.replace(userSelectStyle, '')); +export function removeUserSelectStyles(body: HTMLElement) { + const style = body.getAttribute('style') || ''; + body.setAttribute('style', style.replace(userSelectStyle, '')); } export function styleHacks(childStyle: Object = {}): Object { diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index e1591bdc..64b6d8f1 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -17,15 +17,17 @@ export function getBoundPosition(draggable: Draggable, x: number, y: number): [n const node = ReactDOM.findDOMNode(draggable); if (typeof bounds === 'string') { + const {currentDocument} = node; + const currentWindow = node.defaultView; let boundNode; if (bounds === 'parent') { boundNode = node.parentNode; } else { - boundNode = document.querySelector(bounds); + boundNode = currentDocument.querySelector(bounds); if (!boundNode) throw new Error('Bounds selector "' + bounds + '" could not find an element.'); } - const nodeStyle = window.getComputedStyle(node); - const boundNodeStyle = window.getComputedStyle(boundNode); + const nodeStyle = currentWindow.getComputedStyle(node); + const boundNodeStyle = currentWindow.getComputedStyle(boundNode); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. bounds = { left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + @@ -66,10 +68,9 @@ export function canDragY(draggable: Draggable): boolean { export function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition { const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null; if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch + const node = ReactDOM.findDOMNode(draggableCore); // User can provide an offsetParent if desired. - const offsetParent = draggableCore.props.offsetParent || - ReactDOM.findDOMNode(draggableCore).offsetParent || - document.body; + const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body; return offsetXYFromParent(touchObj || e, offsetParent); } From 9ba1dc5b78fd16bf7faaa816bb4baf39cdb9a318 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 Jul 2016 14:51:42 -0500 Subject: [PATCH 202/412] Update CHANGELOG --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed8c0cfb..bafb6643 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### Prerelease + +- Addition: `offsetParent` property for an arbitrary ancestor for offset calculations. + - Fixes e.g. dragging with a floating `offsetParent`. + - Ref: https://github.com/mzabriskie/react-draggable/issues/170 +- Enhancement: Make this library iframe-aware. + - Ref: https://github.com/mzabriskie/react-draggable/pull/177 +- Bugfix: Lint/Test Fixes for new Flow & React versions + ### 2.1.2 (Jun 5, 2016) - Bugfix: Fix `return false` to cancel `onDrag` breaking on both old and new browsers due to missing `typeArg` and/or From ac269435565fe584f0409345dcb79e8f5b682828 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 19 Jul 2016 14:54:06 -0500 Subject: [PATCH 203/412] Fix `currentDocument` typo, thanks @acusti --- lib/utils/positionFns.es6 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index 64b6d8f1..c6d6b8f4 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -17,17 +17,17 @@ export function getBoundPosition(draggable: Draggable, x: number, y: number): [n const node = ReactDOM.findDOMNode(draggable); if (typeof bounds === 'string') { - const {currentDocument} = node; - const currentWindow = node.defaultView; + const {ownerDocument} = node; + const ownerWindow = node.defaultView; let boundNode; if (bounds === 'parent') { boundNode = node.parentNode; } else { - boundNode = currentDocument.querySelector(bounds); + boundNode = ownerDocument.querySelector(bounds); if (!boundNode) throw new Error('Bounds selector "' + bounds + '" could not find an element.'); } - const nodeStyle = currentWindow.getComputedStyle(node); - const boundNodeStyle = currentWindow.getComputedStyle(boundNode); + const nodeStyle = ownerWindow.getComputedStyle(node); + const boundNodeStyle = ownerWindow.getComputedStyle(boundNode); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. bounds = { left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + From 53e8230adae2911313e591d0535caf0e9d0e3328 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Wed, 20 Jul 2016 06:20:41 +0900 Subject: [PATCH 204/412] Added support for custom dragging and dragged class names (#178) Added :defaultClassName, :defaultClassNameDragging, and :defaultClassNameDragged properties to Draggable. Updated docs and tests --- README.md | 6 ++++++ lib/Draggable.es6 | 19 ++++++++++++++++--- specs/draggable.spec.jsx | 18 ++++++++++++++++++ 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3d9acedd..64e4b2a9 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,12 @@ bounds: {left: number, top: number, right: number, bottom: number} | string, // Example: '.body' cancel: string, +// Class names for draggable UI. +// Default to 'react-draggable', 'react-draggable-dragging', and 'react-draggable-dragged' +defaultClassName: string, +defaultClassNameDragging: string, +defaultClassNameDragged: string, + // Specifies the `x` and `y` that the dragged item should start at. // This is generally not necessary to use (you can use absolute or relative // positioning of the child directly), but can be helpful for uniformity in diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index 56da57a7..58b30730 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -87,6 +87,10 @@ export default class Draggable extends React.Component { PropTypes.oneOf([false]) ]), + defaultClassName: PropTypes.string, + defaultClassNameDragging: PropTypes.string, + defaultClassNameDragged: PropTypes.string, + /** * `defaultPosition` specifies the x and y that the dragged item should start at * @@ -146,6 +150,9 @@ export default class Draggable extends React.Component { ...DraggableCore.defaultProps, axis: 'both', bounds: false, + defaultClassName: 'react-draggable', + defaultClassNameDragging: 'react-draggable-dragging', + defaultClassNameDragged: 'react-draggable-dragged', defaultPosition: {x: 0, y: 0}, position: null }; @@ -319,10 +326,16 @@ export default class Draggable extends React.Component { style = createCSSTransform(transformOpts); } + const { + defaultClassName, + defaultClassNameDragging, + defaultClassNameDragged + } = this.props; + // Mark with class while dragging - const className = classNames((this.props.children.props.className || ''), 'react-draggable', { - 'react-draggable-dragging': this.state.dragging, - 'react-draggable-dragged': this.state.dragged + const className = classNames((this.props.children.props.className || ''), defaultClassName, { + [defaultClassNameDragging]: this.state.dragging, + [defaultClassNameDragged]: this.state.dragged }); // Reuse the child provided diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 066d4b42..d871c600 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -59,6 +59,24 @@ describe('react-draggable', function () { assert(node.getAttribute('class') === 'foo react-draggable'); }); + it('should set the appropriate custom className when dragging or dragged', function () { + drag = TestUtils.renderIntoDocument( + +
+ + ); + var node = ReactDOM.findDOMNode(drag); + assert(node.getAttribute('class').indexOf('foo') >= 0); + TestUtils.Simulate.mouseDown(node); + assert(node.getAttribute('class').indexOf('bar') >= 0); + TestUtils.Simulate.mouseUp(node); + assert(node.getAttribute('class').indexOf('baz') >= 0); + }); + // NOTE: this runs a shallow renderer, which DOES NOT actually render it('should pass handle on to ', function () { drag =
; From a7a35b21a1713403c8abae991a2f04a8243f7a45 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Wed, 27 Jul 2016 08:09:28 -0700 Subject: [PATCH 205/412] :white_check_mark: Add draggable in iframe tests (#182) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I was unable to get these tests working using TestUtils’ renderIntoDocument function (or the various find* helpers) for these tests and had to use actual ReactDOM.render instead along with regular querySelector. Has something to do with the tricky parts of react-frame-component (rendering an iframe with React). --- package.json | 1 + specs/draggable.spec.jsx | 70 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 64 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index b7aab2b3..33b35349 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "pre-commit": "^1.1.3", "react": "^15.2.1", "react-dom": "^15.2.1", + "react-frame-component": "0.6.2", "semver": "^5.3.0", "static-server": "^2.0.3", "uglify-js": "^2.7.0", diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index d871c600..6484e90a 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -3,6 +3,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react/lib/ReactTestUtils'; import Draggable, {DraggableCore} from '../index'; +import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; import _ from 'lodash'; import {getPrefix, browserPrefixToKey, browserPrefixToStyle} from '../lib/utils/getPrefix'; @@ -289,7 +290,7 @@ describe('react-draggable', function () { }); it('should detect if an element is instanceof SVGElement and set state.isElementSVG to true', function() { - drag = TestUtils.renderIntoDocument( + drag = TestUtils.renderIntoDocument( @@ -299,7 +300,7 @@ describe('react-draggable', function () { }); it('should detect if an element is NOT an instanceof SVGElement and set state.isElementSVG to false', function() { - drag = TestUtils.renderIntoDocument( + drag = TestUtils.renderIntoDocument(
@@ -374,6 +375,60 @@ describe('react-draggable', function () { TestUtils.Simulate.mouseUp(node); assert(document.body.getAttribute('style') === ''); }); + + it('should be draggable when in an iframe', function (done) { + let dragged = false; + const dragElement = ( + +
+ + ); + const renderRoot = document.body.appendChild(document.createElement('div')); + const frame = ReactDOM.render({ dragElement }, renderRoot); + + setTimeout(() => { + const body = ReactDOM.findDOMNode(frame).contentDocument.body; + const node = body.querySelector('.react-draggable'); + simulateMovementFromTo(node, 0, 0, 100, 100); + + const style = node.getAttribute('style'); + assert(dragged === true); + assert(style.indexOf('transform: translate(100px, 100px);') >= 0); + + renderRoot.parentNode.removeChild(renderRoot); + done(); + }, 50); + }); + + it('should add and remove user-select styles to iframe’s body when in an iframe', function (done) { + const userSelectStyleStr = `;${userSelectStyle}: none;`; + + const dragElement = ( + +
+ + ); + const renderRoot = document.body.appendChild(document.createElement('div')); + const frame = ReactDOM.render({ dragElement }, renderRoot); + + setTimeout(() => { + const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; + const node = iframeDoc.querySelector('.react-draggable'); + iframeDoc.body.setAttribute('style', ''); + + assert(iframeDoc.body.getAttribute('style') === ''); + assert(document.body.getAttribute('style') === ''); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(iframeDoc.body.getAttribute('style') === userSelectStyleStr); + assert(document.body.getAttribute('style') === ''); + TestUtils.Simulate.mouseUp(node); + assert(iframeDoc.body.getAttribute('style') === ''); + assert(document.body.getAttribute('style') === ''); + + renderRoot.parentNode.removeChild(renderRoot); + done(); + }, 50); + }); }); describe('interaction', function () { @@ -477,7 +532,7 @@ describe('react-draggable', function () { let dragCalled = false; function onDrag(e, coreEvent) { - assert(coreEvent.deltaY === 500); + assert(Math.round(coreEvent.deltaY) === 500); dragCalled = true; } drag = TestUtils.renderIntoDocument(
); @@ -642,11 +697,12 @@ function renderToNode(component) { // but attaches event listeners directly to the document. // Would love to new MouseEvent() here but it doesn't work with PhantomJS / old browsers. // var e = new MouseEvent('mousemove', {clientX: 100, clientY: 100}); -function mouseMove(x, y) { - const evt = document.createEvent('MouseEvents'); +function mouseMove(x, y, node) { + const doc = node ? node.ownerDocument : document; + const evt = doc.createEvent('MouseEvents'); evt.initMouseEvent('mousemove', true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null); - document.dispatchEvent(evt); + doc.dispatchEvent(evt); return evt; } @@ -655,7 +711,7 @@ function simulateMovementFromTo(drag, fromX, fromY, toX, toY) { const node = ReactDOM.findDOMNode(drag); TestUtils.Simulate.mouseDown(node, {clientX: fromX, clientY: fromX}); - mouseMove(toX, toY); + mouseMove(toX, toY, node); TestUtils.Simulate.mouseUp(node); } From 9cbfbcabebd3c38e7bc3ecec0a71891e2917e56e Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 27 Jul 2016 10:36:29 -0500 Subject: [PATCH 206/412] Travis: Update node version & chromium invocation --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index d15c489e..c158a4b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,11 +2,13 @@ language: node_js node_js: - "0.10" - "0.12" - - "4.0" + - "4" + - "6" before_script: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start + - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1024x768x16" + - sleep 3 # give xvfb some time to start email: on_failure: change on_success: never From d9934c3c772fcadd54cb1c4eb4cd380d63d307d6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 29 Jul 2016 14:47:43 -0500 Subject: [PATCH 207/412] release v2.2.0 --- CHANGELOG.md | 3 +- bower.json | 2 +- dist/react-draggable.js | 254 ++++++++++++++++++++++++++------ dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 220 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bafb6643..761795a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,13 @@ # Changelog -### Prerelease +### 2.2.0 (Jul 29, 2016) - Addition: `offsetParent` property for an arbitrary ancestor for offset calculations. - Fixes e.g. dragging with a floating `offsetParent`. - Ref: https://github.com/mzabriskie/react-draggable/issues/170 - Enhancement: Make this library iframe-aware. - Ref: https://github.com/mzabriskie/react-draggable/pull/177 + - Thanks to @acusti for tests - Bugfix: Lint/Test Fixes for new Flow & React versions ### 2.1.2 (Jun 5, 2016) diff --git a/bower.json b/bower.json index 92954e52..a5946bcc 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.1.2", + "version": "2.2.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 2a384140..77636181 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -97,12 +97,14 @@ return /******/ (function(modules) { // webpackBootstrap var _DraggableCore2 = _interopRequireDefault(_DraggableCore); - var _log = __webpack_require__(10); + var _log = __webpack_require__(11); var _log2 = _interopRequireDefault(_log); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } @@ -128,7 +130,7 @@ return /******/ (function(modules) { // webpackBootstrap /*:: type ConstructorProps = { position: { x: number, y: number }, defaultPosition: { x: number, y: number } - }*/ + };*/ var Draggable = function (_React$Component) { _inherits(Draggable, _React$Component); @@ -284,6 +286,8 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'render', value: function render() { + var _classNames; + var style = {}, svgTransform = null; @@ -311,11 +315,14 @@ return /******/ (function(modules) { // webpackBootstrap style = (0, _domFns.createCSSTransform)(transformOpts); } + var _props = this.props; + var defaultClassName = _props.defaultClassName; + var defaultClassNameDragging = _props.defaultClassNameDragging; + var defaultClassNameDragged = _props.defaultClassNameDragged; + // Mark with class while dragging - var className = (0, _classnames2.default)(this.props.children.props.className || '', 'react-draggable', { - 'react-draggable-dragging': this.state.dragging, - 'react-draggable-dragged': this.state.dragged - }); + + var className = (0, _classnames2.default)(this.props.children.props.className || '', defaultClassName, (_classNames = {}, _defineProperty(_classNames, defaultClassNameDragging, this.state.dragging), _defineProperty(_classNames, defaultClassNameDragged, this.state.dragged), _classNames)); // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) @@ -385,6 +392,10 @@ return /******/ (function(modules) { // webpackBootstrap bottom: _react.PropTypes.number }), _react.PropTypes.string, _react.PropTypes.oneOf([false])]), + defaultClassName: _react.PropTypes.string, + defaultClassNameDragging: _react.PropTypes.string, + defaultClassNameDragged: _react.PropTypes.string, + /** * `defaultPosition` specifies the x and y that the dragged item should start at * @@ -419,7 +430,7 @@ return /******/ (function(modules) { // webpackBootstrap * let App = React.createClass({ * render: function () { * return ( - * + * *
I start with transformX: 25px and transformY: 25px;
*
* ); @@ -442,6 +453,9 @@ return /******/ (function(modules) { // webpackBootstrap Draggable.defaultProps = _extends({}, _DraggableCore2.default.defaultProps, { axis: 'both', bounds: false, + defaultClassName: 'react-draggable', + defaultClassNameDragging: 'react-draggable-dragging', + defaultClassNameDragged: 'react-draggable-dragged', defaultPosition: { x: 0, y: 0 }, position: null }); @@ -534,7 +548,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.outerWidth = outerWidth; exports.innerHeight = innerHeight; exports.innerWidth = innerWidth; - exports.offsetXYFromParentOf = offsetXYFromParentOf; + exports.offsetXYFromParent = offsetXYFromParent; exports.createCSSTransform = createCSSTransform; exports.createSVGTransform = createSVGTransform; exports.getTouch = getTouch; @@ -613,7 +627,7 @@ return /******/ (function(modules) { // webpackBootstrap // This is deliberately excluding margin for our calculations, since we are using // offsetTop which is including margin. See getBoundPosition var height = node.clientHeight; - var computedStyle = window.getComputedStyle(node); + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); height += (0, _shims.int)(computedStyle.borderTopWidth); height += (0, _shims.int)(computedStyle.borderBottomWidth); return height; @@ -623,14 +637,14 @@ return /******/ (function(modules) { // webpackBootstrap // This is deliberately excluding margin for our calculations, since we are using // offsetLeft which is including margin. See getBoundPosition var width = node.clientWidth; - var computedStyle = window.getComputedStyle(node); + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); width += (0, _shims.int)(computedStyle.borderLeftWidth); width += (0, _shims.int)(computedStyle.borderRightWidth); return width; } function innerHeight(node /*: HTMLElement*/) /*: number*/ { var height = node.clientHeight; - var computedStyle = window.getComputedStyle(node); + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); height -= (0, _shims.int)(computedStyle.paddingTop); height -= (0, _shims.int)(computedStyle.paddingBottom); return height; @@ -638,16 +652,16 @@ return /******/ (function(modules) { // webpackBootstrap function innerWidth(node /*: HTMLElement*/) /*: number*/ { var width = node.clientWidth; - var computedStyle = window.getComputedStyle(node); + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); width -= (0, _shims.int)(computedStyle.paddingLeft); width -= (0, _shims.int)(computedStyle.paddingRight); return width; } // Get from offsetParent - function offsetXYFromParentOf(evt /*: {clientX: number, clientY: number}*/, node /*: HTMLElement & {offsetParent: HTMLElement}*/) /*: ControlPosition*/ { - var offsetParent = node.offsetParent || document.body; - var offsetParentRect = node.offsetParent === document.body ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); + function offsetXYFromParent(evt /*: {clientX: number, clientY: number}*/, offsetParent /*: HTMLElement*/) /*: ControlPosition*/ { + var isBody = offsetParent === offsetParent.ownerDocument.body; + var offsetParentRect = isBody ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); var x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; var y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; @@ -690,14 +704,15 @@ return /******/ (function(modules) { // webpackBootstrap var userSelect = (0, _getPrefix.browserPrefixToStyle)('user-select', userSelectPrefix); var userSelectStyle = ';' + userSelect + ': none;'; - function addUserSelectStyles() { - var style = document.body.getAttribute('style') || ''; - document.body.setAttribute('style', style + userSelectStyle); + // Note we're passing `document` b/c we could be iframed + function addUserSelectStyles(body /*: HTMLElement*/) { + var style = body.getAttribute('style') || ''; + body.setAttribute('style', style + userSelectStyle); } - function removeUserSelectStyles() { - var style = document.body.getAttribute('style') || ''; - document.body.setAttribute('style', style.replace(userSelectStyle, '')); + function removeUserSelectStyles(body /*: HTMLElement*/) { + var style = body.getAttribute('style') || ''; + body.setAttribute('style', style.replace(userSelectStyle, '')); } function styleHacks() /*: Object*/ { @@ -853,15 +868,18 @@ return /******/ (function(modules) { // webpackBootstrap var node = _reactDom2.default.findDOMNode(draggable); if (typeof bounds === 'string') { + var ownerDocument = node.ownerDocument; + + var ownerWindow = node.defaultView; var boundNode = void 0; if (bounds === 'parent') { boundNode = node.parentNode; } else { - boundNode = document.querySelector(bounds); + boundNode = ownerDocument.querySelector(bounds); if (!boundNode) throw new Error('Bounds selector "' + bounds + '" could not find an element.'); } - var nodeStyle = window.getComputedStyle(node); - var boundNodeStyle = window.getComputedStyle(boundNode); + var nodeStyle = ownerWindow.getComputedStyle(node); + var boundNodeStyle = ownerWindow.getComputedStyle(boundNode); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. bounds = { left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.borderLeftWidth) + (0, _shims.int)(nodeStyle.marginLeft), @@ -900,7 +918,10 @@ return /******/ (function(modules) { // webpackBootstrap function getControlPosition(e /*: MouseEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null; if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch - return (0, _domFns.offsetXYFromParentOf)(touchObj || e, _reactDom2.default.findDOMNode(draggableCore)); + var node = _reactDom2.default.findDOMNode(draggableCore); + // User can provide an offsetParent if desired. + var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body; + return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent); } // Create an data object exposed by 's events @@ -955,7 +976,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 9 */ /***/ function(module, exports, __webpack_require__) { - 'use strict'; + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; Object.defineProperty(exports, "__esModule", { value: true @@ -979,7 +1000,7 @@ return /******/ (function(modules) { // webpackBootstrap var _shims = __webpack_require__(6); - var _log = __webpack_require__(10); + var _log = __webpack_require__(11); var _log2 = _interopRequireDefault(_log); @@ -1049,8 +1070,13 @@ return /******/ (function(modules) { // webpackBootstrap // Only accept left-clicks. if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; + // Get nodes. Be sure to grab relative document (could be iframed) + var domNode = _reactDom2.default.findDOMNode(_this); + var ownerDocument = domNode.ownerDocument; + // Short circuit if handle or cancel prop was provided and selector doesn't match. - if (_this.props.disabled || !(e.target instanceof Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, _reactDom2.default.findDOMNode(_this)) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, _reactDom2.default.findDOMNode(_this))) { + + if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, domNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, domNode)) { return; } @@ -1079,7 +1105,7 @@ return /******/ (function(modules) { // webpackBootstrap // Add a style to the body to disable user-select. This prevents text from // being selected all over the page. - if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(); + if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument.body); // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us @@ -1094,8 +1120,8 @@ return /******/ (function(modules) { // webpackBootstrap // Add events to the document directly so we catch when the user's mouse/touch moves outside of // this element. We use different events depending on whether or not we have detected that this // is a touch-capable device. - (0, _domFns.addEvent)(document, dragEventFor.move, _this.handleDrag); - (0, _domFns.addEvent)(document, dragEventFor.stop, _this.handleDragStop); + (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag); + (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop); }, _this.handleDrag = function (e) { // Get the current drag point from the event. This is used as the offset. @@ -1134,11 +1160,10 @@ return /******/ (function(modules) { // webpackBootstrap _this.handleDragStop(new MouseEvent('mouseup')); } catch (err) { // Old browsers - var event = document.createEvent('MouseEvents'); + var event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseEvent*/); // I see why this insanity was deprecated // $FlowIgnore event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); - // $FlowIgnore _this.handleDragStop(event); } return; @@ -1159,7 +1184,7 @@ return /******/ (function(modules) { // webpackBootstrap var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); // Remove user-select hack - if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(); + if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(_reactDom2.default.findDOMNode(_this).ownerDocument.body); (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); @@ -1174,9 +1199,14 @@ return /******/ (function(modules) { // webpackBootstrap _this.props.onStop(e, coreEvent); // Remove event handlers + + var _ReactDOM$findDOMNode = _reactDom2.default.findDOMNode(_this); + + var ownerDocument = _ReactDOM$findDOMNode.ownerDocument; + (0, _log2.default)('DraggableCore: Removing handlers'); - (0, _domFns.removeEvent)(document, dragEventFor.move, _this.handleDrag); - (0, _domFns.removeEvent)(document, dragEventFor.stop, _this.handleDragStop); + (0, _domFns.removeEvent)(ownerDocument, dragEventFor.move, _this.handleDrag); + (0, _domFns.removeEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop); }, _this.onMouseDown = function (e) { dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse @@ -1203,11 +1233,16 @@ return /******/ (function(modules) { // webpackBootstrap value: function componentWillUnmount() { // Remove any leftover event handlers. Remove both touch and mouse handlers in case // some browser quirk caused a touch event to fire during a mouse move, or vice versa. - (0, _domFns.removeEvent)(document, eventsFor.mouse.move, this.handleDrag); - (0, _domFns.removeEvent)(document, eventsFor.touch.move, this.handleDrag); - (0, _domFns.removeEvent)(document, eventsFor.mouse.stop, this.handleDragStop); - (0, _domFns.removeEvent)(document, eventsFor.touch.stop, this.handleDragStop); - if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(); + + var _ReactDOM$findDOMNode2 = _reactDom2.default.findDOMNode(this); + + var ownerDocument = _ReactDOM$findDOMNode2.ownerDocument; + + (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag); + (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag); + (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); + (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop); + if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument.body); } // Same as onMouseDown (start drag), but now consider this a touch device. @@ -1256,6 +1291,16 @@ return /******/ (function(modules) { // webpackBootstrap */ enableUserSelectHack: _react.PropTypes.bool, + /** + * `offsetParent`, if set, uses the passed DOM node to compute drag offsets + * instead of using the parent node. + */ + offsetParent: function offsetParent(props, propName) { + if (process.browser && props[propName] && props[propName].nodeType !== 1) { + throw new Error('Draggable\'s offsetParent must be a DOM Node.'); + } + }, + /** * `grid` specifies the x and y that dragging should snap to. */ @@ -1341,6 +1386,7 @@ return /******/ (function(modules) { // webpackBootstrap cancel: null, disabled: false, enableUserSelectHack: true, + offsetParent: null, handle: null, grid: null, transform: null, @@ -1350,9 +1396,135 @@ return /******/ (function(modules) { // webpackBootstrap onMouseDown: function onMouseDown() {} }; exports.default = DraggableCore; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) /***/ }, /* 10 */ +/***/ function(module, exports) { + + // shim for using process in browser + + var process = module.exports = {}; + + // cached from whatever global is present so that test runners that stub it + // don't break things. But we need to wrap it in a try catch in case it is + // wrapped in strict mode code which doesn't define any globals. It's inside a + // function because try/catches deoptimize in certain engines. + + var cachedSetTimeout; + var cachedClearTimeout; + + (function () { + try { + cachedSetTimeout = setTimeout; + } catch (e) { + cachedSetTimeout = function () { + throw new Error('setTimeout is not defined'); + } + } + try { + cachedClearTimeout = clearTimeout; + } catch (e) { + cachedClearTimeout = function () { + throw new Error('clearTimeout is not defined'); + } + } + } ()) + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = cachedSetTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + cachedClearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + cachedSetTimeout(drainQueue, 0); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }, +/* 11 */ /***/ function(module, exports, __webpack_require__) { "use strict"; diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 4cba04fd..53135195 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b668cf52fd8889146cd5",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b668cf52fd8889146cd5\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n}\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), 'react-draggable', {\n 'react-draggable-dragging': this.state.dragging,\n 'react-draggable-dragged': this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = window.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = window.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: {clientX: number, clientY: number}, node: HTMLElement & {offsetParent: HTMLElement}): ControlPosition {\n const offsetParent = node.offsetParent || document.body;\n const offsetParentRect = node.offsetParent === document.body ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\nexport function addUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles() {\n const style = document.body.getAttribute('style') || '';\n document.body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParentOf, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = document.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = window.getComputedStyle(node);\n const boundNodeStyle = window.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n return offsetXYFromParentOf(touchObj || e, ReactDOM.findDOMNode(draggableCore));\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n removeEvent(document, eventsFor.mouse.move, this.handleDrag);\n removeEvent(document, eventsFor.touch.move, this.handleDrag);\n removeEvent(document, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(document, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, ReactDOM.findDOMNode(this))) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, ReactDOM.findDOMNode(this)))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles();\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(document, dragEventFor.move, this.handleDrag);\n addEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = document.createEvent('MouseEvents');\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n // $FlowIgnore\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles();\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(document, dragEventFor.move, this.handleDrag);\n removeEvent(document, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 0f52986ccffacd2319bd",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 0f52986ccffacd2319bd\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = node.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ReactDOM.findDOMNode(this).ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = cachedSetTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n cachedClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n cachedSetTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/process/browser.js\n ** module id = 10\n ** module chunks = 0\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 656334b8..d643ad82 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1)["default"],module.exports.DraggableCore=__webpack_require__(9)["default"]},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2["default"].findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var className=(0,_classnames2["default"])(this.props.children.props.className||"","react-draggable",{"react-draggable-dragging":this.state.dragging,"react-draggable-dragged":this.state.dragged});return _react2["default"].createElement(_DraggableCore2["default"],_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2["default"].Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2["default"].propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2["default"].defaultProps,{axis:"both",bounds:!1,defaultPosition:{x:0,y:0},position:null}),exports["default"]=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;ii;i++)if(callback.apply(callback,[array[i],i,array]))return array[i]}function isFunction(func){return"function"==typeof func||"[object Function]"===Object.prototype.toString.call(func)}function isNum(num){return"number"==typeof num&&!isNaN(num)}function int(a){return parseInt(a,10)}function dontSetMe(props,propName,componentName){return props[propName]?new Error("Invalid prop "+propName+" passed to "+componentName+" - do not set this, set it on the child."):void 0}Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=findInArray,exports.isFunction=isFunction,exports.isNum=isNum,exports["int"]=int,exports.dontSetMe=dontSetMe},function(module,exports){"use strict";function getPrefix(){var prop=arguments.length<=0||void 0===arguments[0]?"transform":arguments[0];if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i_key;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_Object$getPrototypeO=Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO,[this].concat(args))),_this.state={dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null},_this.handleDragStart=function(e){if(_this.props.onMouseDown(e),!_this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;if(!(_this.props.disabled||!(e.target instanceof Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,_reactDom2["default"].findDOMNode(_this))||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,_reactDom2["default"].findDOMNode(_this)))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2["default"])("calling",_this.props.onStart);var shouldUpdate=_this.props.onStart(e,coreEvent);shouldUpdate!==!1&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(document,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var deltaX=x-_this.state.lastX,deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,deltaX,deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(deltaX=_snapToGrid2[0],deltaY=_snapToGrid2[1],!deltaX&&!deltaY)return;x=_this.state.lastX+deltaX,y=_this.state.lastY+deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2["default"])("DraggableCore: handleDrag: %j",coreEvent);var shouldUpdate=_this.props.onDrag(e,coreEvent);if(shouldUpdate!==!1)_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(),(0,_log2["default"])("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),(0,_log2["default"])("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(document,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(document,dragEventFor.stop,_this.handleDragStop)}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_React$Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){(0,_domFns.removeEvent)(document,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(document,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(document,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)()}},{key:"render",value:function(){return _react2["default"].cloneElement(_react2["default"].Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}(_react2["default"].Component);DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_react.PropTypes.bool,disabled:_react.PropTypes.bool,enableUserSelectHack:_react.PropTypes.bool,grid:_react.PropTypes.arrayOf(_react.PropTypes.number),handle:_react.PropTypes.string,cancel:_react.PropTypes.string,onStart:_react.PropTypes.func,onDrag:_react.PropTypes.func,onStop:_react.PropTypes.func,onMouseDown:_react.PropTypes.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports["default"]=DraggableCore},function(module,exports,__webpack_require__){"use strict";function log(){}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=log}])}); +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1).default,module.exports.DraggableCore=__webpack_require__(9).default},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultClassName:_react.PropTypes.string,defaultClassNameDragging:_react.PropTypes.string,defaultClassNameDragged:_react.PropTypes.string,defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i1)for(var i=1;i Date: Thu, 11 Aug 2016 09:40:30 -0500 Subject: [PATCH 208/412] fix(positionFns): Fix "getComputedStyle" of undefined, #190, #186 --- lib/utils/positionFns.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index c6d6b8f4..acd84f07 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -18,7 +18,7 @@ export function getBoundPosition(draggable: Draggable, x: number, y: number): [n if (typeof bounds === 'string') { const {ownerDocument} = node; - const ownerWindow = node.defaultView; + const ownerWindow = ownerDocument.defaultView; let boundNode; if (bounds === 'parent') { boundNode = node.parentNode; From 1cda7bf4d9601728528bd61c7c4802a5d81ba49e Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 11 Aug 2016 09:42:49 -0500 Subject: [PATCH 209/412] release v2.2.1 --- CHANGELOG.md | 4 ++++ bower.json | 2 +- dist/react-draggable.js | 2 +- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 761795a9..6267d4bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 2.2.1 (Aug 11, 2016) + +- Bugfix: Fix `getComputedStyle` error: see [#186](https://github.com/mzabriskie/react-draggable/issues/186), #190 + ### 2.2.0 (Jul 29, 2016) - Addition: `offsetParent` property for an arbitrary ancestor for offset calculations. diff --git a/bower.json b/bower.json index a5946bcc..5600ce5a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.0", + "version": "2.2.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 77636181..f44a9259 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -870,7 +870,7 @@ return /******/ (function(modules) { // webpackBootstrap if (typeof bounds === 'string') { var ownerDocument = node.ownerDocument; - var ownerWindow = node.defaultView; + var ownerWindow = ownerDocument.defaultView; var boundNode = void 0; if (bounds === 'parent') { boundNode = node.parentNode; diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 53135195..32cf62ee 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 0f52986ccffacd2319bd",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 0f52986ccffacd2319bd\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = node.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ReactDOM.findDOMNode(this).ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = cachedSetTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n cachedClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n cachedSetTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/process/browser.js\n ** module id = 10\n ** module chunks = 0\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap e78a12bc0420d391a9c3",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap e78a12bc0420d391a9c3\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ReactDOM.findDOMNode(this).ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = cachedSetTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n cachedClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n cachedSetTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/process/browser.js\n ** module id = 10\n ** module chunks = 0\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index d643ad82..5884932c 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1).default,module.exports.DraggableCore=__webpack_require__(9).default},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultClassName:_react.PropTypes.string,defaultClassNameDragging:_react.PropTypes.string,defaultClassNameDragged:_react.PropTypes.string,defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i1)for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultClassName:_react.PropTypes.string,defaultClassNameDragging:_react.PropTypes.string,defaultClassNameDragged:_react.PropTypes.string,defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i1)for(var i=1;i Date: Mon, 15 Aug 2016 18:25:15 +0300 Subject: [PATCH 210/412] fix(svg): Remove references to `global`. * assume SVGElement can be defined in a global namespace. Fixes issues when draggable is run a second time through Babel. Fixes #162 --- lib/Draggable.es6 | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index 58b30730..e4e05324 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -192,7 +192,7 @@ export default class Draggable extends React.Component { componentDidMount() { // Check to see if the element passed is an instanceof SVGElement - if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) { + if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) { this.setState({ isElementSVG: true }); } } diff --git a/package.json b/package.json index ea5bb632..3299a594 100644 --- a/package.json +++ b/package.json @@ -69,4 +69,4 @@ "dependencies": { "classnames": "^2.2.5" } -} \ No newline at end of file +} From 496f82e2f480b90b73e507c0382db2fb90523db3 Mon Sep 17 00:00:00 2001 From: Andrew Patton Date: Wed, 7 Sep 2016 06:35:21 -0700 Subject: [PATCH 211/412] Get ownerDocument before calling onStop handlers (#198) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a draggable onStop handler causes the wrapped component to unmount, ReactDOM.findDOMNode will error with “Uncaught Invariant Violation: findDOMNode was called on an unmounted component”. This avoids that. Plus it’s cleaner. --- lib/DraggableCore.es6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 1e630dd3..eb36d6cb 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -301,9 +301,10 @@ export default class DraggableCore extends React.Component { if (position == null) return; const {x, y} = position; const coreEvent = createCoreData(this, x, y); + const {ownerDocument} = ReactDOM.findDOMNode(this); // Remove user-select hack - if (this.props.enableUserSelectHack) removeUserSelectStyles(ReactDOM.findDOMNode(this).ownerDocument.body); + if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body); log('DraggableCore: handleDragStop: %j', coreEvent); @@ -318,7 +319,6 @@ export default class DraggableCore extends React.Component { this.props.onStop(e, coreEvent); // Remove event handlers - const {ownerDocument} = ReactDOM.findDOMNode(this); log('DraggableCore: Removing handlers'); removeEvent(ownerDocument, dragEventFor.move, this.handleDrag); removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop); From 7543fe51808ca259a3a68ad36efebb8d69cf8a28 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 14 Sep 2016 12:23:46 -0500 Subject: [PATCH 212/412] release v2.2.2 --- CHANGELOG.md | 5 +++++ bower.json | 4 ++-- dist/react-draggable.js | 17 ++++++++--------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 19 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6267d4bc..a629ceb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 2.2.2 (Sep 14, 2016) + +- Bugfix: Fix references to global when grabbing `SVGElement`, see [#162](https://github.com/mzabriskie/react-draggable/issues/162) +- Bugfix: Get `ownerDocument` before `onStop`, fixes [#198](https://github.com/mzabriskie/react-draggable/issues/198) + ### 2.2.1 (Aug 11, 2016) - Bugfix: Fix `getComputedStyle` error: see [#186](https://github.com/mzabriskie/react-draggable/issues/186), #190 diff --git a/bower.json b/bower.json index 5600ce5a..199ec67d 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.1", + "version": "2.2.2", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", @@ -25,4 +25,4 @@ "webpack.config.js", "package.json" ] -} \ No newline at end of file +} diff --git a/dist/react-draggable.js b/dist/react-draggable.js index f44a9259..5976ca81 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -63,7 +63,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + 'use strict'; Object.defineProperty(exports, "__esModule", { value: true @@ -266,7 +266,7 @@ return /******/ (function(modules) { // webpackBootstrap key: 'componentDidMount', value: function componentDidMount() { // Check to see if the element passed is an instanceof SVGElement - if (typeof global.SVGElement !== 'undefined' && _reactDom2.default.findDOMNode(this) instanceof global.SVGElement) { + if (typeof SVGElement !== 'undefined' && _reactDom2.default.findDOMNode(this) instanceof SVGElement) { this.setState({ isElementSVG: true }); } } @@ -460,7 +460,6 @@ return /******/ (function(modules) { // webpackBootstrap position: null }); exports.default = Draggable; - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, /* 2 */ @@ -1183,8 +1182,13 @@ return /******/ (function(modules) { // webpackBootstrap var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); + var _ReactDOM$findDOMNode = _reactDom2.default.findDOMNode(_this); + + var ownerDocument = _ReactDOM$findDOMNode.ownerDocument; + // Remove user-select hack - if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(_reactDom2.default.findDOMNode(_this).ownerDocument.body); + + if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument.body); (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); @@ -1199,11 +1203,6 @@ return /******/ (function(modules) { // webpackBootstrap _this.props.onStop(e, coreEvent); // Remove event handlers - - var _ReactDOM$findDOMNode = _reactDom2.default.findDOMNode(_this); - - var ownerDocument = _ReactDOM$findDOMNode.ownerDocument; - (0, _log2.default)('DraggableCore: Removing handlers'); (0, _domFns.removeEvent)(ownerDocument, dragEventFor.move, _this.handleDrag); (0, _domFns.removeEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop); diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 32cf62ee..2c814322 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap e78a12bc0420d391a9c3",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap e78a12bc0420d391a9c3\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof global.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof global.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ReactDOM.findDOMNode(this).ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = cachedSetTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n cachedClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n cachedSetTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/process/browser.js\n ** module id = 10\n ** module chunks = 0\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap e7af926c2781db7b585d",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap e7af926c2781db7b585d\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = cachedSetTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n cachedClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n cachedSetTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/process/browser.js\n ** module id = 10\n ** module chunks = 0\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 5884932c..e3a8000f 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1).default,module.exports.DraggableCore=__webpack_require__(9).default},function(module,exports,__webpack_require__){(function(global){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof global.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof global.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultClassName:_react.PropTypes.string,defaultClassNameDragging:_react.PropTypes.string,defaultClassNameDragged:_react.PropTypes.string,defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable}).call(exports,function(){return this}())},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i1)for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultClassName:_react.PropTypes.string,defaultClassNameDragging:_react.PropTypes.string,defaultClassNameDragged:_react.PropTypes.string,defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i1)for(var i=1;i Date: Sat, 24 Sep 2016 13:25:51 -0500 Subject: [PATCH 213/412] Shave a few bytes with babel-plugin-external-helpers --- .babelrc | 1 + package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/.babelrc b/.babelrc index 19860a65..e44438e9 100644 --- a/.babelrc +++ b/.babelrc @@ -6,6 +6,7 @@ ], "plugins": [ "transform-flow-comments", + "external-helpers", ], "env": { "test": { diff --git a/package.json b/package.json index bffac419..13c76ddc 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "babel-eslint": "^6.1.2", "babel-loader": "^6.2.4", "babel-plugin-espower": "^2.3.1", + "babel-plugin-external-helpers": "^6.8.0", "babel-plugin-transform-flow-comments": "^6.8.0", "babel-preset-es2015": "^6.9.0", "babel-preset-react": "^6.11.1", From 47150373a2b4052a59509f39faa9571d68f10d9b Mon Sep 17 00:00:00 2001 From: Juga Paazmaya Date: Wed, 26 Oct 2016 01:34:07 +0300 Subject: [PATCH 214/412] AppVeyor configuration (#194) * IE launcher for Karma and some :neckbeard: for AppVeyor * This just might work... * Should have its own script to use local karma --- appveyor.yml | 15 +++++++++++++++ package.json | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 00000000..68ad4dca --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,15 @@ +# https://www.appveyor.com/docs/appveyor-yml/ + +cache: + - node_modules + +environment: + IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplorer.exe" + +install: + - npm install + +test_script: + - npm run test-ie + +build: off diff --git a/package.json b/package.json index 13c76ddc..00a950ef 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "scripts": { "test": "make test", "test-debug": "karma start --browsers=Chrome --single-run=false", + "test-ie": "karma start --single-run --browsers ie", "dev": "make dev", "build": "make clean build", "lint": "make lint" @@ -45,6 +46,7 @@ "karma-chrome-launcher": "^1.0.1", "karma-cli": "1.0.1", "karma-firefox-launcher": "^1.0.0", + "karma-ie-launcher": "^1.0.0", "karma-jasmine": "^1.0.2", "karma-phantomjs-launcher": "^1.0.1", "karma-phantomjs-shim": "^1.4.0", From 6942b9fef24ddb0fc6286b66059a4a41484d704f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 17:39:33 -0500 Subject: [PATCH 215/412] AppVeyor: Add ie launcher --- karma.conf.js | 1 + 1 file changed, 1 insertion(+) diff --git a/karma.conf.js b/karma.conf.js index 1b53e642..ff464a47 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -86,6 +86,7 @@ module.exports = function(config) { require('karma-phantomjs-launcher'), require('karma-firefox-launcher'), require('karma-chrome-launcher'), + require('karma-ie-launcher'), require('karma-webpack'), require('karma-phantomjs-shim') ] From 4400bf6d9d95b42f72aa0c7cc36d14d231e3f6e6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 17:44:28 -0500 Subject: [PATCH 216/412] Add AppVeyor badge. Fixes #203 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 64e4b2a9..e7a41b22 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# React-Draggable [![Build Status](https://travis-ci.org/mzabriskie/react-draggable.svg?branch=master)](https://travis-ci.org/mzabriskie/react-draggable) [![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)]() +# React-Draggable [![Build Status](https://travis-ci.org/mzabriskie/react-draggable.svg?branch=master)](https://travis-ci.org/mzabriskie/react-draggable) ![https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true) [![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)]() A simple component for making elements draggable. From 403fddf7b087acbe728719d6d37f821f49488e5c Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 17:52:14 -0500 Subject: [PATCH 217/412] Remove external helpers, no savings there --- .babelrc | 1 - package.json | 1 - 2 files changed, 2 deletions(-) diff --git a/.babelrc b/.babelrc index e44438e9..19860a65 100644 --- a/.babelrc +++ b/.babelrc @@ -6,7 +6,6 @@ ], "plugins": [ "transform-flow-comments", - "external-helpers", ], "env": { "test": { diff --git a/package.json b/package.json index 00a950ef..289a32aa 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "babel-eslint": "^6.1.2", "babel-loader": "^6.2.4", "babel-plugin-espower": "^2.3.1", - "babel-plugin-external-helpers": "^6.8.0", "babel-plugin-transform-flow-comments": "^6.8.0", "babel-preset-es2015": "^6.9.0", "babel-preset-react": "^6.11.1", From 756abc3e540127a4edb77f304d917f336f7aa6c5 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 17:52:48 -0500 Subject: [PATCH 218/412] Add Node 7 to Travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index c158a4b0..cb071f87 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ node_js: - "0.12" - "4" - "6" + - "7" before_script: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 From d0ac84cf1072ad6147f5d86f4d4cb582409981d4 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 17:58:02 -0500 Subject: [PATCH 219/412] Add Yarn lockfile, travis & appveyor support. --- .travis.yml | 16 +- appveyor.yml | 14 +- yarn.lock | 4227 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 4254 insertions(+), 3 deletions(-) create mode 100644 yarn.lock diff --git a/.travis.yml b/.travis.yml index cb071f87..d5448252 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,22 @@ language: node_js node_js: - - "0.10" - - "0.12" - "4" - "6" - "7" +before_install: + # Repo for newer Node.js versions + - curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - + # Repo for Yarn + - sudo apt-key adv --keyserver pgp.mit.edu --recv D101F7899D41F3C3 + - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list + - sudo apt-get update -qq + - sudo apt-get install -y -qq yarn +install: + - node --version + - yarn install +cache: + directories: + - $HOME/.yarn-cache before_script: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 diff --git a/appveyor.yml b/appveyor.yml index 68ad4dca..8c3fbdb6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,11 @@ # https://www.appveyor.com/docs/appveyor-yml/ +environment: + matrix: + - node_version: "7" + - node_version: "6" + - node_version: "4" + cache: - node_modules @@ -7,7 +13,13 @@ environment: IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplorer.exe" install: - - npm install + - ps: Install-Product node $env:node_version + - choco install -i yarn + - refreshenv + - yarn install + +cache: + - "%LOCALAPPDATA%/Yarn" test_script: - npm run test-ie diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..3d18858a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4227 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 +abbrev@1: + version "1.0.9" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +accepts@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" + dependencies: + mime-types "~2.0.4" + negotiator "0.4.9" + +acorn-es7-plugin@^1.0.12: + version "1.1.3" + resolved "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.3.tgz#6a032a71f1faf396a1a29729c7b150fe480cc17a" + +acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.0, acorn@^3.0.4, acorn@^3.1.0: + version "3.3.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" + +after@0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" + +ajv-keywords@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" + +ajv@^4.7.0: + version "4.8.2" + resolved "https://registry.npmjs.org/ajv/-/ajv-4.8.2.tgz#65486936ca36fea39a1504332a78bebd5d447bdc" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.0" + resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz#fd17474700cb5cc9c2b709f0be9d23ce3c198c33" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + +ansi-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +aproba@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + +are-we-there-yet@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.0 || ^1.1.13" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^0.9.0, async@~0.9.0: + version "0.9.2" + resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +async@^1.3.0: + version "1.5.2" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.0.1: + version "2.1.2" + resolved "https://registry.npmjs.org/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385" + dependencies: + lodash "^4.14.0" + +async@~0.2.6: + version "0.2.10" + resolved "https://registry.npmjs.org/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.5.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + +babel-cli@^6.10.1: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-cli/-/babel-cli-6.18.0.tgz#92117f341add9dead90f6fa7d0a97c0cc08ec186" + dependencies: + babel-core "^6.18.0" + babel-polyfill "^6.16.0" + babel-register "^6.18.0" + babel-runtime "^6.9.0" + commander "^2.8.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.0.0" + glob "^5.0.5" + lodash "^4.2.0" + output-file-sync "^1.1.0" + path-is-absolute "^1.0.0" + slash "^1.0.0" + source-map "^0.5.0" + v8flags "^2.0.10" + optionalDependencies: + chokidar "^1.0.0" + +babel-code-frame@^6.16.0: + version "6.16.0" + resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^2.0.0" + +babel-core@^6.10.4, babel-core@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.18.0.tgz#bb5ce9bc0a956e6e94e2f12d597abb3b0b330deb" + dependencies: + babel-code-frame "^6.16.0" + babel-generator "^6.18.0" + babel-helpers "^6.16.0" + babel-messages "^6.8.0" + babel-register "^6.18.0" + babel-runtime "^6.9.1" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.11.0" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.5.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-is-absolute "^1.0.0" + private "^0.1.6" + slash "^1.0.0" + source-map "^0.5.0" + +babel-eslint@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-6.1.2.tgz#5293419fe3672d66598d327da9694567ba6a5f2f" + dependencies: + babel-traverse "^6.0.20" + babel-types "^6.0.19" + babylon "^6.0.18" + lodash.assign "^4.0.0" + lodash.pickby "^4.0.0" + +babel-generator@^6.1.0, babel-generator@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.18.0.tgz#e4f104cb3063996d9850556a45aae4a022060a07" + dependencies: + babel-messages "^6.8.0" + babel-runtime "^6.9.0" + babel-types "^6.18.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.2.0" + source-map "^0.5.0" + +babel-helper-bindify-decorators@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz#fc00c573676a6e702fffa00019580892ec8780a5" + dependencies: + babel-runtime "^6.0.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-builder-binary-assignment-operator-visitor@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6" + dependencies: + babel-helper-explode-assignable-expression "^6.18.0" + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-helper-builder-react-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71" + dependencies: + babel-runtime "^6.9.0" + babel-types "^6.18.0" + esutils "^2.0.0" + lodash "^4.2.0" + +babel-helper-call-delegate@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" + dependencies: + babel-helper-hoist-variables "^6.18.0" + babel-runtime "^6.0.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" + dependencies: + babel-helper-function-name "^6.18.0" + babel-runtime "^6.9.0" + babel-types "^6.18.0" + lodash "^4.2.0" + +babel-helper-explode-assignable-expression@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe" + dependencies: + babel-runtime "^6.0.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-explode-class@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz#c44f76f4fa23b9c5d607cbac5d4115e7a76f62cb" + dependencies: + babel-helper-bindify-decorators "^6.18.0" + babel-runtime "^6.0.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" + dependencies: + babel-helper-get-function-arity "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-get-function-arity@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-helper-hoist-variables@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-helper-optimise-call-expression@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-helper-regex@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" + dependencies: + babel-runtime "^6.9.0" + babel-types "^6.18.0" + lodash "^4.2.0" + +babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-generator@^6.16.2: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.18.0.tgz#336cdf3cab650bb191b02fc16a3708e7be7f9ce5" + dependencies: + babel-helper-function-name "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" + dependencies: + babel-helper-optimise-call-expression "^6.18.0" + babel-messages "^6.8.0" + babel-runtime "^6.0.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-helpers@^6.16.0: + version "6.16.0" + resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3" + dependencies: + babel-runtime "^6.0.0" + babel-template "^6.16.0" + +babel-loader@^6.2.4: + version "6.2.5" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.5.tgz#576d548520689a5e6b70c65b85d76af1ffedd005" + dependencies: + loader-utils "^0.2.11" + mkdirp "^0.5.1" + object-assign "^4.0.1" + +babel-messages@^6.8.0: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-check-es2015-constants@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-espower@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.3.1.tgz#d15e904bc9949b14ac233b7965c2a5dc7a19a6a9" + dependencies: + babel-generator "^6.1.0" + babylon "^6.1.0" + call-matcher "^1.0.0" + core-js "^2.0.0" + espower-location-detector "^0.1.1" + espurify "^1.6.0" + estraverse "^4.1.1" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-async-generators@^6.5.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + +babel-plugin-syntax-class-constructor-call@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-decorators@^6.13.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-export-extensions@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" + +babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13, babel-plugin-syntax-flow@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.3.13: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.13.0.tgz#2b84b7d53dd744f94ff1fad7669406274b23f541" + +babel-plugin-transform-async-generator-functions@^6.17.0: + version "6.17.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz#d0b5a2b2f0940f2b245fa20a00519ed7bc6cae54" + dependencies: + babel-helper-remap-async-to-generator "^6.16.2" + babel-plugin-syntax-async-generators "^6.5.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-async-to-generator@^6.16.0: + version "6.16.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" + dependencies: + babel-helper-remap-async-to-generator "^6.16.0" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-class-constructor-call@^6.3.13: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.18.0.tgz#80855e38a1ab47b8c6c647f8ea1bcd2c00ca3aae" + dependencies: + babel-plugin-syntax-class-constructor-call "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + +babel-plugin-transform-class-properties@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.18.0.tgz#bc1266a39d4c8726e0bd7b15c56235177e6ede57" + dependencies: + babel-helper-function-name "^6.18.0" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.9.1" + +babel-plugin-transform-decorators@^6.13.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz#82d65c1470ae83e2d13eebecb0a1c2476d62da9d" + dependencies: + babel-helper-define-map "^6.8.0" + babel-helper-explode-class "^6.8.0" + babel-plugin-syntax-decorators "^6.13.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + babel-types "^6.13.0" + +babel-plugin-transform-es2015-arrow-functions@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-block-scoping@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af" + dependencies: + babel-runtime "^6.9.0" + babel-template "^6.15.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + lodash "^4.2.0" + +babel-plugin-transform-es2015-classes@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" + dependencies: + babel-helper-define-map "^6.18.0" + babel-helper-function-name "^6.18.0" + babel-helper-optimise-call-expression "^6.18.0" + babel-helper-replace-supers "^6.18.0" + babel-messages "^6.8.0" + babel-runtime "^6.9.0" + babel-template "^6.14.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-plugin-transform-es2015-computed-properties@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870" + dependencies: + babel-helper-define-map "^6.8.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + +babel-plugin-transform-es2015-destructuring@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.18.0.tgz#a08fb89415ab82058649558bedb7bf8dafa76ba5" + dependencies: + babel-runtime "^6.9.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.6.0: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.8.0" + +babel-plugin-transform-es2015-for-of@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-function-name@^6.9.0: + version "6.9.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719" + dependencies: + babel-helper-function-name "^6.8.0" + babel-runtime "^6.9.0" + babel-types "^6.9.0" + +babel-plugin-transform-es2015-literals@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-modules-amd@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + +babel-plugin-transform-es2015-modules-commonjs@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" + dependencies: + babel-plugin-transform-strict-mode "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.16.0" + babel-types "^6.18.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.18.0.tgz#f09294707163edae4d3b3e8bfacecd01d920b7ad" + dependencies: + babel-helper-hoist-variables "^6.18.0" + babel-runtime "^6.11.6" + babel-template "^6.14.0" + +babel-plugin-transform-es2015-modules-umd@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.18.0" + babel-runtime "^6.0.0" + babel-template "^6.8.0" + +babel-plugin-transform-es2015-object-super@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5" + dependencies: + babel-helper-replace-supers "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-parameters@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" + dependencies: + babel-helper-call-delegate "^6.18.0" + babel-helper-get-function-arity "^6.18.0" + babel-runtime "^6.9.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + +babel-plugin-transform-es2015-shorthand-properties@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-plugin-transform-es2015-spread@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-sticky-regex@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be" + dependencies: + babel-helper-regex "^6.8.0" + babel-runtime "^6.0.0" + babel-types "^6.8.0" + +babel-plugin-transform-es2015-template-literals@^6.6.0: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-es2015-unicode-regex@^6.3.13: + version "6.11.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c" + dependencies: + babel-helper-regex "^6.8.0" + babel-runtime "^6.0.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.8.0" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-export-extensions@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.8.0.tgz#fa80ff655b636549431bfd38f6b817bd82e47f5b" + dependencies: + babel-plugin-syntax-export-extensions "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-flow-comments@^6.8.0: + version "6.17.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-flow-comments/-/babel-plugin-transform-flow-comments-6.17.0.tgz#a7aabecef1800f76facaf06d8e967fd39dac7728" + dependencies: + babel-plugin-syntax-flow "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-flow-strip-types@^6.3.13: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.18.0.tgz#4d3e642158661e9b40db457c004a30817fa32592" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-object-rest-spread@^6.16.0: + version "6.16.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.16.0.tgz#db441d56fffc1999052fdebe2e2f25ebd28e36a9" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-react-display-name@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.8.0.tgz#f7a084977383d728bdbdc2835bba0159577f660e" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-react-jsx-self@^6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.11.0.tgz#605c9450c1429f97a930f7e1dfe3f0d9d0dbd0f4" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.9.0" + +babel-plugin-transform-react-jsx-source@^6.3.13: + version "6.9.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.9.0.tgz#af684a05c2067a86e0957d4f343295ccf5dccf00" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.9.0" + +babel-plugin-transform-react-jsx@^6.3.13: + version "6.8.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.8.0.tgz#94759942f70af18c617189aa7f3593f1644a71ab" + dependencies: + babel-helper-builder-react-jsx "^6.8.0" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-regenerator@^6.16.0: + version "6.16.1" + resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" + dependencies: + babel-runtime "^6.9.0" + babel-types "^6.16.0" + private "~0.1.5" + +babel-plugin-transform-strict-mode@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" + dependencies: + babel-runtime "^6.0.0" + babel-types "^6.18.0" + +babel-polyfill@^6.16.0: + version "6.16.0" + resolved "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422" + dependencies: + babel-runtime "^6.9.1" + core-js "^2.4.0" + regenerator-runtime "^0.9.5" + +babel-preset-es2015@^6.9.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" + dependencies: + babel-plugin-check-es2015-constants "^6.3.13" + babel-plugin-transform-es2015-arrow-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoping "^6.18.0" + babel-plugin-transform-es2015-classes "^6.18.0" + babel-plugin-transform-es2015-computed-properties "^6.3.13" + babel-plugin-transform-es2015-destructuring "^6.18.0" + babel-plugin-transform-es2015-duplicate-keys "^6.6.0" + babel-plugin-transform-es2015-for-of "^6.18.0" + babel-plugin-transform-es2015-function-name "^6.9.0" + babel-plugin-transform-es2015-literals "^6.3.13" + babel-plugin-transform-es2015-modules-amd "^6.18.0" + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" + babel-plugin-transform-es2015-modules-systemjs "^6.18.0" + babel-plugin-transform-es2015-modules-umd "^6.18.0" + babel-plugin-transform-es2015-object-super "^6.3.13" + babel-plugin-transform-es2015-parameters "^6.18.0" + babel-plugin-transform-es2015-shorthand-properties "^6.18.0" + babel-plugin-transform-es2015-spread "^6.3.13" + babel-plugin-transform-es2015-sticky-regex "^6.3.13" + babel-plugin-transform-es2015-template-literals "^6.6.0" + babel-plugin-transform-es2015-typeof-symbol "^6.18.0" + babel-plugin-transform-es2015-unicode-regex "^6.3.13" + babel-plugin-transform-regenerator "^6.16.0" + +babel-preset-react@^6.11.1: + version "6.16.0" + resolved "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.16.0.tgz#aa117d60de0928607e343c4828906e4661824316" + dependencies: + babel-plugin-syntax-flow "^6.3.13" + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-flow-strip-types "^6.3.13" + babel-plugin-transform-react-display-name "^6.3.13" + babel-plugin-transform-react-jsx "^6.3.13" + babel-plugin-transform-react-jsx-self "^6.11.0" + babel-plugin-transform-react-jsx-source "^6.3.13" + +babel-preset-stage-1@^6.5.0: + version "6.16.0" + resolved "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.16.0.tgz#9d31fbbdae7b17c549fd3ac93e3cf6902695e479" + dependencies: + babel-plugin-transform-class-constructor-call "^6.3.13" + babel-plugin-transform-export-extensions "^6.3.13" + babel-preset-stage-2 "^6.16.0" + +babel-preset-stage-2@^6.16.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz#9eb7bf9a8e91c68260d5ba7500493caaada4b5b5" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.18.0" + babel-plugin-transform-decorators "^6.13.0" + babel-preset-stage-3 "^6.17.0" + +babel-preset-stage-3@^6.17.0: + version "6.17.0" + resolved "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz#b6638e46db6e91e3f889013d8ce143917c685e39" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.3.13" + babel-plugin-transform-async-generator-functions "^6.17.0" + babel-plugin-transform-async-to-generator "^6.16.0" + babel-plugin-transform-exponentiation-operator "^6.3.13" + babel-plugin-transform-object-rest-spread "^6.16.0" + +babel-register@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" + dependencies: + babel-core "^6.18.0" + babel-runtime "^6.11.6" + core-js "^2.4.0" + home-or-tmp "^2.0.0" + lodash "^4.2.0" + mkdirp "^0.5.1" + source-map-support "^0.4.2" + +babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.9.0, babel-runtime@^6.9.1: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.9.5" + +babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.8.0: + version "6.16.0" + resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" + dependencies: + babel-runtime "^6.9.0" + babel-traverse "^6.16.0" + babel-types "^6.16.0" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-traverse@^6.0.20, babel-traverse@^6.16.0, babel-traverse@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.18.0.tgz#5aeaa980baed2a07c8c47329cd90c3b90c80f05e" + dependencies: + babel-code-frame "^6.16.0" + babel-messages "^6.8.0" + babel-runtime "^6.9.0" + babel-types "^6.18.0" + babylon "^6.11.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.0.19, babel-types@^6.13.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.8.0, babel-types@^6.9.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.18.0.tgz#1f7d5a73474c59eb9151b2417bbff4e4fce7c3f8" + dependencies: + babel-runtime "^6.9.1" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.0.18, babylon@^6.1.0, babylon@^6.11.0: + version "6.13.0" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.13.0.tgz#58ed40dd2a8120612be5f318c2c0bedbebde4a0b" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +base64-arraybuffer@0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154" + +base64-js@^1.0.2: + version "1.2.0" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + +Base64@~0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" + +base64id@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" + +batch@0.5.3: + version "0.5.3" + resolved "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" + +bcrypt-pbkdf@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" + dependencies: + tweetnacl "^0.14.3" + +benchmark@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +binary-extensions@^1.0.0: + version "1.7.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" + +bl@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" + dependencies: + readable-stream "~2.0.5" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +block-stream@*: + version "0.0.9" + resolved "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.3.0: + version "3.4.6" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" + +body-parser@^1.12.4: + version "1.15.2" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.15.2.tgz#d7578cf4f1d11d5f6ea804cef35dc7a7ff6dae67" + dependencies: + bytes "2.4.0" + content-type "~1.0.2" + debug "~2.2.0" + depd "~1.1.0" + http-errors "~1.5.0" + iconv-lite "0.4.13" + on-finished "~2.3.0" + qs "6.2.0" + raw-body "~2.1.7" + type-is "~1.6.13" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^0.1.2: + version "0.1.5" + resolved "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + dependencies: + expand-range "^0.1.0" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browserify-zlib@~0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +buffer@^4.9.0: + version "4.9.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +bytes@2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" + +bytes@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" + +call-matcher@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.0.tgz#eafa31036dbfaa9c0d1716f12ddacfd9c69ef22f" + dependencies: + core-js "^2.0.0" + deep-equal "^1.0.0" + espurify "^1.6.0" + estraverse "^4.0.0" + +call-signature@0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + 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@^1.0.0, chokidar@^1.4.1: + version "1.6.1" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +circular-json@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + +classnames@^2.2.5: + version "2.2.5" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +clone@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.1.tgz#1104cd34f9b5b45d3eba88f1babc1924e1ce35fb" + dependencies: + number-is-nan "^1.0.0" + +colors@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combine-lists@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + dependencies: + lodash "^4.5.0" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@^2.3.0, commander@^2.8.1, commander@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + +component-emitter@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +compressible@~2.0.8: + version "2.0.8" + resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.8.tgz#7162e6c46d3b9d200ffb45cb4e4a0f7832732503" + dependencies: + mime-db ">= 1.23.0 < 2" + +compression@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" + dependencies: + accepts "~1.3.3" + bytes "2.3.0" + compressible "~2.0.8" + debug "~2.2.0" + on-headers "~1.0.1" + vary "~1.1.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.6, concat-stream@^1.4.7: + version "1.5.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" + dependencies: + inherits "~2.0.1" + readable-stream "~2.0.0" + typedarray "~0.0.5" + +concat-stream@1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" + dependencies: + inherits "~2.0.1" + readable-stream "~2.0.0" + typedarray "~0.0.5" + +connect-history-api-fallback@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + +connect@^3.3.5: + version "3.5.0" + resolved "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198" + dependencies: + debug "~2.2.0" + finalhandler "0.5.0" + parseurl "~1.3.1" + utils-merge "1.0.0" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" + +content-disposition@0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" + +content-type@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +convert-source-map@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cross-spawn-async@^2.0.0: + version "2.2.4" + resolved "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.4.tgz#c9a8d8e9a06502c7a46296e33a1a054b5d2f1812" + dependencies: + lru-cache "^4.0.0" + which "^1.2.8" + +cross-spawn@2.0.x: + version "2.0.1" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-2.0.1.tgz#ab6fd893a099759d9b85220e3a64397de946b0f6" + dependencies: + cross-spawn-async "^2.0.0" + spawn-sync "1.0.13" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@~3.2.6: + version "3.2.8" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" + dependencies: + pbkdf2-compat "2.0.1" + ripemd160 "0.2.0" + sha.js "2.2.6" + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + +d@^0.1.1, d@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + dependencies: + es5-ext "~0.10.2" + +dashdash@^1.12.0: + version "1.14.0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug@^2.1.1, debug@^2.2.0, debug@~2.2.0, debug@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@0.7.4: + version "0.7.4" + resolved "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + +decamelize@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-equal@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.npmjs.org/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + +diff-match-patch@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" + +doctrine@^1.2.2: + version "1.5.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +eastasianwidth@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +empower-core@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/empower-core/-/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1" + dependencies: + call-signature "0.0.2" + core-js "^2.0.0" + +empower@^1.1.0: + version "1.2.1" + resolved "https://registry.npmjs.org/empower/-/empower-1.2.1.tgz#b63302741b6d503a241bff115befc948c8362c60" + dependencies: + core-js "^2.0.0" + empower-core "^0.6.1" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +engine.io-client@1.6.9: + version "1.6.9" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz#1d6ad48048a5083c95096943b29d36efdb212401" + dependencies: + component-emitter "1.1.2" + component-inherit "0.0.3" + debug "2.2.0" + engine.io-parser "1.2.4" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.1" + parseqs "0.0.2" + parseuri "0.0.4" + ws "1.0.1" + xmlhttprequest-ssl "1.5.1" + yeast "0.1.2" + +engine.io-parser@1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42" + dependencies: + after "0.8.1" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.2" + blob "0.0.4" + has-binary "0.1.6" + utf8 "2.1.0" + +engine.io@1.6.10: + version "1.6.10" + resolved "https://registry.npmjs.org/engine.io/-/engine.io-1.6.10.tgz#f87d84e1bd21d1a2ec7f8deef0c62054acdfb27a" + dependencies: + accepts "1.1.4" + base64id "0.1.0" + debug "2.2.0" + engine.io-parser "1.2.4" + ws "1.0.1" + +enhanced-resolve@~0.9.0: + version "0.9.1" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + +errno@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: + version "0.10.12" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2: + version "2.0.0" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" + dependencies: + d "^0.1.1" + es5-ext "^0.10.7" + es6-symbol "3" + +es6-map@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-set "~0.1.3" + es6-symbol "~3.1.0" + event-emitter "~0.3.4" + +es6-promise@~4.0.3: + version "4.0.5" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" + +es6-set@~0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-symbol "3" + event-emitter "~0.3.4" + +es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: + version "3.1.0" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + +es6-weak-map@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" + dependencies: + d "^0.1.1" + es5-ext "^0.10.8" + es6-iterator "2" + es6-symbol "3" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-plugin-react@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-5.2.2.tgz#7db068e1f5487f6871e4deef36a381c303eac161" + dependencies: + doctrine "^1.2.2" + jsx-ast-utils "^1.2.1" + +eslint@^3.1.1: + version "3.8.1" + resolved "https://registry.npmjs.org/eslint/-/eslint-3.8.1.tgz#7d02db44cd5aaf4fa7aa489e1f083baa454342ba" + dependencies: + chalk "^1.1.3" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^1.2.2" + escope "^3.6.0" + espree "^3.3.1" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.2.0" + ignore "^3.1.5" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.6.0" + strip-bom "^3.0.0" + strip-json-comments "~1.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espower-location-detector@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-0.1.2.tgz#d43be738af3e0b18197eeb5c22b95512dee6b83c" + dependencies: + is-url "^1.2.1" + path-is-absolute "^1.0.0" + source-map "^0.5.0" + xtend "^4.0.0" + +espree@^3.3.1: + version "3.3.2" + resolved "https://registry.npmjs.org/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" + dependencies: + acorn "^4.0.1" + acorn-jsx "^3.0.0" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +espurify@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/espurify/-/espurify-1.6.0.tgz#6cb993582d9422bd6f2d4b258aadb14833f394f0" + dependencies: + core-js "^2.0.0" + +esrecurse@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + +event-emitter@~0.3.4: + version "0.3.4" + resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" + dependencies: + d "~0.1.1" + es5-ext "~0.10.7" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +eventsource@~0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-braces@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + dependencies: + array-slice "^0.2.3" + array-unique "^0.2.1" + braces "^0.1.2" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + dependencies: + is-number "^0.1.1" + repeat-string "^0.2.2" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@^4.13.3: + version "4.14.0" + resolved "https://registry.npmjs.org/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.1" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "~2.2.0" + depd "~1.1.0" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + finalhandler "0.5.0" + fresh "0.3.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.2" + qs "6.2.0" + range-parser "~1.2.0" + send "0.14.1" + serve-static "~1.11.1" + type-is "~1.6.13" + utils-merge "1.0.0" + vary "~1.1.0" + +extend@^3.0.0, extend@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extract-zip@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" + dependencies: + concat-stream "1.5.0" + debug "0.7.4" + mkdirp "0.5.0" + yauzl "2.4.1" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +fast-levenshtein@~2.0.4: + version "2.0.5" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.0.tgz#d9ccf0e789e7db725d74bc4877d23aa42972ac50" + dependencies: + websocket-driver ">=0.5.1" + +fbjs@^0.8.4: + version "0.8.5" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-0.8.5.tgz#f69ba8a876096cb1b9bffe4d7c1e71c19d39d008" + dependencies: + core-js "^1.0.0" + immutable "^3.7.6" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + ua-parser-js "^0.7.9" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-size@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" + +filename-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" + dependencies: + debug "~2.2.0" + escape-html "~1.0.3" + on-finished "~2.3.0" + statuses "~1.3.0" + unpipe "~1.0.0" + +flat-cache@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" + dependencies: + circular-json "^0.3.0" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +flow-bin@^0.33.0: + version "0.33.0" + resolved "https://registry.npmjs.org/flow-bin/-/flow-bin-0.33.0.tgz#ef011eace7a6100f1ae08b852db78279032b8750" + +for-in@^0.1.5: + version "0.1.6" + resolved "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" + +for-own@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + dependencies: + for-in "^0.1.5" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~1.0.0-rc4: + version "1.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" + dependencies: + async "^2.0.1" + combined-stream "^1.0.5" + mime-types "^2.1.11" + +form-data@~2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.1.1.tgz#4adf0342e1a79afa1e84c8c320a9ffc82392a1f3" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + +fs-access@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + dependencies: + null-check "^1.0.0" + +fs-extra@~0.30.0: + version "0.30.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-readdir-recursive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.0.14" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.0.14.tgz#558e8cc38643d8ef40fe45158486d0d25758eee4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fstream-ignore@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: + version "1.0.10" + resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +gauge@~2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-color "^0.1.7" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +getpass@^0.1.1: + version "0.1.6" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^5.0.5: + version "5.0.15" + resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5: + version "7.1.1" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.0.0, globals@^9.2.0: + version "9.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-9.12.0.tgz#992ce90828c3a55fa8f16fada177adb64664cf9d" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.9" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz#baacba37d19d11f9d146d3578bc99958c3787e29" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + dependencies: + ansi-regex "^0.2.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary@0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" + dependencies: + isarray "0.0.1" + +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + dependencies: + isarray "0.0.1" + +has-color@^0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +hasha@~2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" + dependencies: + is-stream "^1.0.1" + pinkie-promise "^2.0.0" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +http-browserify@^1.3.2: + version "1.7.0" + resolved "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" + dependencies: + Base64 "~0.2.0" + inherits "~2.0.1" + +http-errors@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz#b1cb3d8260fd8e2386cad3189045943372d48211" + dependencies: + inherits "2.0.1" + setprototypeof "1.0.1" + statuses ">= 1.3.0 < 2" + +http-proxy-middleware@~0.17.1: + version "0.17.2" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.2.tgz#572d517a6d2fb1063a469de294eed96066352007" + dependencies: + http-proxy "^1.15.1" + is-glob "^3.0.0" + lodash "^4.16.2" + micromatch "^2.3.11" + +http-proxy@^1.13.0, http-proxy@^1.15.1: + version "1.15.2" + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" + +iconv-lite@~0.4.13, iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +ignore@^3.1.5: + version "3.2.0" + resolved "https://registry.npmjs.org/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" + +immutable@^3.7.6: + version "3.8.1" + resolved "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +interpret@^0.6.4: + version "0.6.6" + resolved "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + +invariant@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.1.tgz#b097010547668c7e337028ebe816ebe36c8a8d54" + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2: + version "1.1.4" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: + version "2.15.0" + resolved "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-url@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" + +isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isbinaryfile@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.1.tgz#6e99573675372e841a0520c036b41513d783e79e" + +isexe@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jasmine-core@^2.4.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +js-tokens@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz#14e56eb68c8f1a92c43d59f5014ec29dc20f2ae1" + +js-tokens@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" + +js-yaml@^3.5.1: + version "3.6.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@^3.3.2, json3@3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json3@3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b" + +json5@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" + +jsprim@^1.2.2: + version "1.3.1" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" + dependencies: + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +jsx-ast-utils@^1.2.1: + version "1.3.2" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.3.2.tgz#dff658782705352111f9865d40471bc4a955961e" + dependencies: + acorn-jsx "^3.0.1" + object-assign "^4.1.0" + +karma-chrome-launcher@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-1.0.1.tgz#be5ae7c4264f9a0a2e22e3d984beb325ad92c8cb" + dependencies: + fs-access "^1.0.0" + which "^1.2.1" + +karma-cli@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" + dependencies: + resolve "^1.1.6" + +karma-firefox-launcher@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.0.0.tgz#e08af3ce42e39860c2952ea7b7eaa64d63508bdc" + +karma-ie-launcher@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz#497986842c490190346cd89f5494ca9830c6d59c" + dependencies: + lodash "^4.6.1" + +karma-jasmine@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.0.2.tgz#c0b3ab327bf207db60e17fa27db37cfdef5d8e6c" + +karma-phantomjs-launcher@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz#19e1041498fd75563ed86730a22c1fe579fa8fb1" + dependencies: + lodash "^4.0.1" + phantomjs-prebuilt "^2.1.7" + +karma-phantomjs-shim@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/karma-phantomjs-shim/-/karma-phantomjs-shim-1.4.0.tgz#21072f436e07764a425fbbdc15175b537106e7ed" + +karma-webpack@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/karma-webpack/-/karma-webpack-1.8.0.tgz#340c7999eb3745b47becab47d0d304dac2c55257" + dependencies: + async "~0.9.0" + loader-utils "^0.2.5" + lodash "^3.8.0" + source-map "^0.1.41" + webpack-dev-middleware "^1.0.11" + +karma@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/karma/-/karma-1.3.0.tgz#b2b94e8f499fadd0069d54f9aef4a4d48ec5cc1f" + dependencies: + bluebird "^3.3.0" + body-parser "^1.12.4" + chokidar "^1.4.1" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.3.5" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + glob "^7.0.3" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^3.8.0" + log4js "^0.6.31" + mime "^1.3.4" + minimatch "^3.0.0" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.3.3" + socket.io "1.4.7" + source-map "^0.5.3" + tmp "0.0.28" + useragent "^2.1.9" + +kew@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + +kind-of@^3.0.2: + version "3.0.4" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" + dependencies: + is-buffer "^1.0.2" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +loader-utils@^0.2.11, loader-utils@^0.2.5: + version "0.2.16" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +lodash.assign@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.pickby@^4.0.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" + +lodash@^3.8.0: + version "3.10.1" + resolved "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.2, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: + version "4.16.4" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.16.4.tgz#01ce306b9bad1319f2a5528674f88297aeb70127" + +log4js@^0.6.31: + version "0.6.38" + resolved "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" + dependencies: + readable-stream "~1.0.2" + semver "~4.3.3" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0, loose-envify@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.2.0.tgz#69a65aad3de542cf4ee0f4fe74e8e33c709ccb0f" + dependencies: + js-tokens "^1.0.1" + +lru-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz#1343955edaf2e37d9b9e7ee7241e27c4b9fb72be" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +lru-cache@2.2.x: + version "2.2.4" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + +memory-fs@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +"mime-db@>= 1.23.0 < 2", mime-db@~1.24.0: + version "1.24.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c" + +mime-db@~1.12.0: + version "1.12.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" + +mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: + version "2.1.12" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729" + dependencies: + mime-db "~1.24.0" + +mime-types@~2.0.4: + version "2.0.14" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" + dependencies: + mime-db "~1.12.0" + +mime@^1.2.11, mime@^1.3.4, mime@1.3.4: + version "1.3.4" + resolved "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +minimatch@^3.0.0, minimatch@^3.0.2, "minimatch@2 || 3": + version "3.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mkdirp@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" + dependencies: + minimist "0.0.8" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +nan@^2.3.0: + version "2.4.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +negotiator@0.4.9: + version "0.4.9" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +node-fetch@^1.0.1: + version "1.6.3" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-libs-browser@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" + dependencies: + assert "^1.1.1" + browserify-zlib "~0.1.4" + buffer "^4.9.0" + console-browserify "^1.1.0" + constants-browserify "0.0.1" + crypto-browserify "~3.2.6" + domain-browser "^1.1.1" + events "^1.0.0" + http-browserify "^1.3.2" + https-browserify "0.0.0" + os-browserify "~0.1.2" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "~0.2.0" + readable-stream "^1.1.13" + stream-browserify "^1.0.0" + string_decoder "~0.10.25" + timers-browserify "^1.0.1" + tty-browserify "0.0.0" + url "~0.10.1" + util "~0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.29: + version "0.6.31" + resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" + dependencies: + mkdirp "~0.5.1" + nopt "~3.0.6" + npmlog "^4.0.0" + rc "~1.1.6" + request "^2.75.0" + rimraf "~2.5.4" + semver "~5.3.0" + tar "~2.2.1" + tar-pack "~3.3.0" + +node-uuid@~1.4.7: + version "1.4.7" + resolved "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + +nopt@~3.0.6: + version "3.0.6" + resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +normalize-path@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + +npmlog@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.6.0" + set-blocking "~2.0.0" + +null-check@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-keys@^1.0.0, object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.omit@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz#868597333d54e60662940bb458605dd6ae12fe94" + dependencies: + for-own "^0.1.3" + is-extendable "^0.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +open@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" + +optimist@^0.6.1, optimist@~0.6.0, optimist@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.npmjs.org/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + +original@>=0.0.5: + version "1.0.0" + resolved "https://registry.npmjs.org/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + dependencies: + url-parse "1.0.x" + +os-browserify@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-shim@^0.1.2: + version "0.1.3" + resolved "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + +os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +output-file-sync@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parsejson@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc" + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350" + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +pbkdf2-compat@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + +phantomjs-prebuilt@^2.1.7, phantomjs-prebuilt@>=2.1: + version "2.1.13" + resolved "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.13.tgz#66556ad9e965d893ca5a7dc9e763df7e8697f76d" + dependencies: + es6-promise "~4.0.3" + extract-zip "~1.5.0" + fs-extra "~0.30.0" + hasha "~2.2.0" + kew "~0.7.0" + progress "~1.1.8" + request "~2.74.0" + request-progress "~2.0.1" + which "~1.2.10" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +power-assert-context-formatter@^1.0.7: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.1.0.tgz#85ec15ec24309528ef1a2303d2c86e44423cd18f" + dependencies: + core-js "^2.0.0" + power-assert-context-traversal "^1.1.0" + +power-assert-context-reducer-ast@^1.0.7: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.0.tgz#7a1dca9a129967b9185a69d08eb64ecbea4dc915" + dependencies: + acorn "^3.1.0" + acorn-es7-plugin "^1.0.12" + core-js "^2.0.0" + espurify "^1.6.0" + estraverse "^4.2.0" + +power-assert-context-traversal@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.1.0.tgz#d815975745a26d9280ec363625c819642edf0264" + dependencies: + core-js "^2.0.0" + estraverse "^4.1.0" + +power-assert-formatter@^1.3.1: + version "1.4.1" + resolved "https://registry.npmjs.org/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a" + dependencies: + core-js "^2.0.0" + power-assert-context-formatter "^1.0.7" + power-assert-context-reducer-ast "^1.0.7" + power-assert-renderer-assertion "^1.0.7" + power-assert-renderer-comparison "^1.0.7" + power-assert-renderer-diagram "^1.0.7" + power-assert-renderer-file "^1.0.7" + +power-assert-renderer-assertion@^1.0.7: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.0.tgz#e512c49bdda30f905d601d1d11f7e0094b657ac3" + dependencies: + power-assert-renderer-base "^1.1.0" + power-assert-util-string-width "^1.1.0" + +power-assert-renderer-base@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-renderer-base/-/power-assert-renderer-base-1.1.0.tgz#de8c0132c5ff42ccaab39034487d5c30bda154a5" + +power-assert-renderer-comparison@^1.0.7: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.1.0.tgz#b6ae7873de60aef612a2cc3c15b91521e7e53d38" + dependencies: + core-js "^2.0.0" + diff-match-patch "^1.0.0" + power-assert-renderer-base "^1.1.0" + stringifier "^1.3.0" + type-name "^2.0.1" + +power-assert-renderer-diagram@^1.0.7: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.0.tgz#91e28458fba754cb977ed81fe06d3eee4333f14d" + dependencies: + core-js "^2.0.0" + power-assert-renderer-base "^1.1.0" + power-assert-util-string-width "^1.1.0" + stringifier "^1.3.0" + +power-assert-renderer-file@^1.0.7: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-renderer-file/-/power-assert-renderer-file-1.1.0.tgz#21ba42ec26d01b8bc7501f3ef5dcf9e750964359" + dependencies: + power-assert-renderer-base "^1.1.0" + +power-assert-util-string-width@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.1.0.tgz#63d2c714c0cddb8dce0e0d7cc5f9851be94ddd98" + dependencies: + eastasianwidth "^0.1.1" + +power-assert@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/power-assert/-/power-assert-1.4.1.tgz#482ee098a9877e8cfa72242c8499b93f20709c4e" + dependencies: + define-properties "^1.1.2" + empower "^1.1.0" + power-assert-formatter "^1.3.1" + universal-deep-strict-equal "^1.2.1" + xtend "^4.0.0" + +pre-commit@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/pre-commit/-/pre-commit-1.1.3.tgz#6d5ed90740472072958c711a15f676aa2c231377" + dependencies: + cross-spawn "2.0.x" + which "1.2.x" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6, private@~0.1.5: + version "0.1.6" + resolved "https://registry.npmjs.org/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.0, process@~0.11.0: + version "0.11.9" + resolved "https://registry.npmjs.org/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" + +progress@^1.1.8, progress@~1.1.8: + version "1.1.8" + resolved "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +promise@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + dependencies: + asap "~2.0.3" + +proxy-addr@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.1.1" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +qjobs@^1.1.4: + version "1.1.5" + resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" + +qs@~6.2.0: + version "6.2.1" + resolved "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" + +qs@~6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + +qs@6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" + +querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@0.0.x: + version "0.0.4" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + +randomatic@^1.1.3: + version "1.1.5" + resolved "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@~2.1.7: + version "2.1.7" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774" + dependencies: + bytes "2.4.0" + iconv-lite "0.4.13" + unpipe "1.0.0" + +rc@~1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~1.0.4" + +react-dom@^15.2.1: + version "15.3.2" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-15.3.2.tgz#c46b0aa5380d7b838e7a59c4a7beff2ed315531f" + +react-frame-component@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/react-frame-component/-/react-frame-component-0.6.2.tgz#748a7f9deac0693f824eefd28dcee2f9529ffe1a" + dependencies: + object-assign "^3.0.0" + +react@^15.2.1: + version "15.3.2" + resolved "https://registry.npmjs.org/react/-/react-15.3.2.tgz#a7bccd2fee8af126b0317e222c28d1d54528d09e" + dependencies: + fbjs "^0.8.4" + loose-envify "^1.1.0" + object-assign "^4.1.0" + +readable-stream@^1.0.27-1, readable-stream@^1.1.13: + version "1.1.14" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@~2.1.4: + version "2.1.5" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + dependencies: + buffer-shims "^1.0.0" + 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" + +readable-stream@~1.0.2: + version "1.0.34" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.0.0, readable-stream@~2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + dependencies: + 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" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +regenerate@^1.2.1: + version "1.3.1" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.3.1.tgz#0300203a5d2fdcf89116dce84275d011f5903f33" + +regenerator-runtime@^0.9.5: + version "0.9.5" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz#403d6d40a4bdff9c330dd9392dcbb2d9a8bba1fc" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request-progress@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" + dependencies: + throttleit "^1.0.0" + +request@^2.75.0: + version "2.76.0" + resolved "https://registry.npmjs.org/request/-/request-2.76.0.tgz#be44505afef70360a0436955106be3945d95560e" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + 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.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + +request@~2.74.0: + version "2.74.0" + resolved "https://registry.npmjs.org/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + bl "~1.1.2" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~1.0.0-rc4" + har-validator "~2.0.6" + hawk "~3.1.3" + 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.1" + qs "~6.2.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + +require-uncached@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz#67dad3b733089e77030124678a459589faf6a7ec" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@1.0.x, requires-port@1.x.x: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve@^1.1.6: + version "1.1.7" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@^2.2.8, rimraf@^2.3.3, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: + version "2.5.4" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + dependencies: + glob "^7.0.5" + +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +semver@^5.3.0, semver@~5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +semver@~4.3.3: + version "4.3.6" + resolved "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +send@0.14.1: + version "0.14.1" + resolved "https://registry.npmjs.org/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" + dependencies: + debug "~2.2.0" + depd "~1.1.0" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + fresh "0.3.0" + http-errors "~1.5.0" + mime "1.3.4" + ms "0.7.1" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.0" + +serve-index@^1.7.2: + version "1.8.0" + resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" + dependencies: + accepts "~1.3.3" + batch "0.5.3" + debug "~2.2.0" + escape-html "~1.0.3" + http-errors "~1.5.0" + mime-types "~2.1.11" + parseurl "~1.3.1" + +serve-static@~1.11.1: + version "1.11.1" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.14.1" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setprototypeof@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz#52009b27888c4dc48f591949c0a8275834c1ca7e" + +sha.js@2.2.6: + version "2.2.6" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + +shelljs@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" + +signal-exit@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +socket.io-adapter@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f" + dependencies: + debug "2.2.0" + socket.io-parser "2.2.2" + +socket.io-client@1.4.6: + version "1.4.6" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz#49b0ba537efd15b8297c84016e642e1c7c752c3d" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.0" + debug "2.2.0" + engine.io-client "1.6.9" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.4" + socket.io-parser "2.2.6" + to-array "0.1.4" + +socket.io-parser@2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417" + dependencies: + benchmark "1.0.0" + component-emitter "1.1.2" + debug "0.7.4" + isarray "0.0.1" + json3 "3.2.6" + +socket.io-parser@2.2.6: + version "2.2.6" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99" + dependencies: + benchmark "1.0.0" + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@1.4.7: + version "1.4.7" + resolved "https://registry.npmjs.org/socket.io/-/socket.io-1.4.7.tgz#92b7f7cb88c5797d4daee279fe8075dbe6d3fa1c" + dependencies: + debug "2.2.0" + engine.io "1.6.10" + has-binary "0.1.7" + socket.io-adapter "0.4.0" + socket.io-client "1.4.6" + socket.io-parser "2.2.6" + +sockjs-client@^1.0.3: + version "1.1.1" + resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" + dependencies: + debug "^2.2.0" + eventsource "~0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.1" + +sockjs@^0.3.15: + version "0.3.18" + resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" + dependencies: + faye-websocket "^0.10.0" + uuid "^2.0.2" + +source-list-map@~0.1.0: + version "0.1.6" + resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" + +source-map-support@^0.4.2: + version "0.4.5" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.5.tgz#4438df4219e1b3c7feb674614b4c67f9722db1e4" + dependencies: + source-map "^0.5.3" + +source-map@^0.1.41: + version "0.1.43" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1: + version "0.5.6" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +source-map@~0.4.1: + version "0.4.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +spawn-sync@1.0.13: + version "1.0.13" + resolved "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.13.tgz#904091b9ad48a0f3afb0e84752154c01e82fd8d8" + dependencies: + concat-stream "^1.4.7" + os-shim "^0.1.2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.10.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +static-server@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/static-server/-/static-server-2.0.3.tgz#bd9049ec62a26acb6f5bb63493070de54b3165ee" + dependencies: + chalk "^0.5.1" + commander "^2.3.0" + file-size "0.0.5" + mime "^1.2.11" + +"statuses@>= 1.3.0 < 2", statuses@~1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz#8e55758cb20e7682c1f4fce8dcab30bf01d1e07a" + +stream-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" + dependencies: + inherits "~2.0.1" + readable-stream "^1.0.27-1" + +stream-cache@~0.0.1: + version "0.0.2" + resolved "https://registry.npmjs.org/stream-cache/-/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" + +string_decoder@~0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +stringifier@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" + dependencies: + core-js "^2.0.0" + traverse "^0.6.6" + type-name "^2.0.1" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + dependencies: + ansi-regex "^0.2.1" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0, supports-color@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.npmjs.org/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +tapable@^0.1.8, tapable@~0.1.8: + version "0.1.10" + resolved "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + +tar-pack@~3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" + dependencies: + debug "~2.2.0" + fstream "~1.0.10" + fstream-ignore "~1.0.5" + once "~1.3.3" + readable-stream "~2.1.4" + rimraf "~2.5.1" + tar "~2.2.1" + uid-number "~0.0.6" + +tar@~2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + dependencies: + process "~0.11.0" + +tmp@0.0.28: + version "0.0.28" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" + dependencies: + os-tmpdir "~1.0.1" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-fast-properties@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + +tryit@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/tryit/-/tryit-1.0.2.tgz#c196b0073e6b1c595d93c9c830855b7acc32a453" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.3" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.13: + version "1.6.13" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz#6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.11" + +type-name@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" + +typedarray@~0.0.5: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ua-parser-js@^0.7.9: + version "0.7.10" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.10.tgz#917559ddcce07cbc09ece7d80495e4c268f4ef9f" + +uglify-js@^2.7.0: + version "2.7.4" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-js@~2.6.0: + version "2.6.4" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@~0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + +universal-deep-strict-equal@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" + dependencies: + array-filter "^1.0.0" + indexof "0.0.1" + object-keys "^1.0.0" + +unpipe@~1.0.0, unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +url-parse@^1.1.1: + version "1.1.6" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.1.6.tgz#ab8ff5aea1388071961255e2236147c52ca5fc48" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url-parse@1.0.x: + version "1.0.5" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url@~0.10.1: + version "0.10.3" + resolved "https://registry.npmjs.org/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + +useragent@^2.1.9: + version "2.1.9" + resolved "https://registry.npmjs.org/useragent/-/useragent-2.1.9.tgz#4dba2bc4dad1875777ab15de3ff8098b475000b7" + dependencies: + lru-cache "2.2.x" + +utf8@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@~0.10.3, util@0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +v8flags@^2.0.10: + version "2.0.11" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" + dependencies: + user-home "^1.1.1" + +vary@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + +watchpack@^0.2.1: + version "0.2.9" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + dependencies: + async "^0.9.0" + chokidar "^1.0.0" + graceful-fs "^4.1.2" + +webpack-core@~0.6.0: + version "0.6.8" + resolved "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" + dependencies: + source-list-map "~0.1.0" + source-map "~0.4.1" + +webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.4.0: + version "1.8.4" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" + dependencies: + memory-fs "~0.3.0" + mime "^1.3.4" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + +webpack-dev-server@^1.14.1: + version "1.16.2" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-1.16.2.tgz#8bebc2c4ce1c45a15c72dd769d9ba08db306a793" + dependencies: + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + express "^4.13.3" + http-proxy-middleware "~0.17.1" + open "0.0.5" + optimist "~0.6.1" + serve-index "^1.7.2" + sockjs "^0.3.15" + sockjs-client "^1.0.3" + stream-cache "~0.0.1" + strip-ansi "^3.0.0" + supports-color "^3.1.1" + webpack-dev-middleware "^1.4.0" + +webpack@^1.13.1: + version "1.13.2" + resolved "https://registry.npmjs.org/webpack/-/webpack-1.13.2.tgz#f11a96f458eb752970a86abe746c0704fabafaf3" + dependencies: + acorn "^3.0.0" + async "^1.3.0" + clone "^1.0.2" + enhanced-resolve "~0.9.0" + interpret "^0.6.4" + loader-utils "^0.2.11" + memory-fs "~0.3.0" + mkdirp "~0.5.0" + node-libs-browser "^0.6.0" + optimist "~0.6.0" + supports-color "^3.1.0" + tapable "~0.1.8" + uglify-js "~2.6.0" + watchpack "^0.2.1" + webpack-core "~0.6.0" + +websocket-driver@>=0.5.1: + version "0.6.5" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + dependencies: + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + +whatwg-fetch@>=0.10.0: + version "1.0.0" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz#01c2ac4df40e236aaa18480e3be74bd5c8eb798e" + +which@^1.2.1, which@^1.2.8, which@~1.2.10, which@1.2.x: + version "1.2.11" + resolved "https://registry.npmjs.org/which/-/which-1.2.11.tgz#c8b2eeea6b8c1659fa7c1dd4fdaabe9533dc5e8b" + dependencies: + isexe "^1.1.1" + +wide-align@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/ws/-/ws-1.0.1.tgz#7d0b2a2e58cddd819039c29c9de65045e1b310e9" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +xmlhttprequest-ssl@1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +yallist@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yauzl@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + dependencies: + fd-slicer "~1.0.1" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + From 548bd3e2162d2bcbc3120c2d307eb342bdba2ccc Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 18:12:42 -0500 Subject: [PATCH 220/412] Fix flow 0.33.0 errors, add lint to build --- .flowconfig | 1 + .travis.yml | 1 + Makefile | 3 +-- interfaces/dom.js | 11 +++++++++++ lib/DraggableCore.es6 | 17 +++++++++-------- lib/utils/domFns.es6 | 4 ++-- lib/utils/positionFns.es6 | 5 ++--- lib/utils/shims.es6 | 2 +- lib/utils/types.es6 | 1 + package.json | 1 + 10 files changed, 30 insertions(+), 16 deletions(-) create mode 100644 interfaces/dom.js diff --git a/.flowconfig b/.flowconfig index 86090005..2bd785fd 100644 --- a/.flowconfig +++ b/.flowconfig @@ -6,6 +6,7 @@ lib/ index.js [libs] +interfaces/ [options] suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowFixMe.* diff --git a/.travis.yml b/.travis.yml index d5448252..480e5574 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,7 @@ before_install: install: - node --version - yarn install + - npm run lint cache: directories: - $HOME/.yarn-cache diff --git a/Makefile b/Makefile index dbad4170..644c04a1 100644 --- a/Makefile +++ b/Makefile @@ -13,8 +13,7 @@ clean: rm -rf dist lint: - # FIXME this is usually global - flow check + @$(BIN)/flow @$(BIN)/eslint lib/* lib/utils/* specs/* build: $(LIB) $(MIN) diff --git a/interfaces/dom.js b/interfaces/dom.js new file mode 100644 index 00000000..46d2c1ac --- /dev/null +++ b/interfaces/dom.js @@ -0,0 +1,11 @@ +// Missing in Flow +declare class SVGElement extends HTMLElement { +} + +// Missing targetTouches +declare class TouchEvent2 extends TouchEvent { + changedTouches: TouchList; + targetTouches: TouchList; +}; + +declare type MouseTouchEvent = MouseEvent & TouchEvent2; diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index eb36d6cb..b1c390eb 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -190,7 +190,7 @@ export default class DraggableCore extends React.Component { if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body); } - handleDragStart: EventHandler = (e) => { + handleDragStart: EventHandler = (e) => { // Make it possible to attach event handlers on top of this one. this.props.onMouseDown(e); @@ -251,7 +251,7 @@ export default class DraggableCore extends React.Component { addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop); }; - handleDrag: EventHandler = (e) => { + handleDrag: EventHandler = (e) => { // Get the current drag point from the event. This is used as the offset. const position = getControlPosition(e, this.state.touchIdentifier, this); @@ -276,10 +276,11 @@ export default class DraggableCore extends React.Component { const shouldUpdate = this.props.onDrag(e, coreEvent); if (shouldUpdate === false) { try { + // $FlowIgnore this.handleDragStop(new MouseEvent('mouseup')); } catch (err) { // Old browsers - const event = ((document.createEvent('MouseEvents'): any): MouseEvent); + const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent); // I see why this insanity was deprecated // $FlowIgnore event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); @@ -294,7 +295,7 @@ export default class DraggableCore extends React.Component { }); }; - handleDragStop: EventHandler = (e) => { + handleDragStop: EventHandler = (e) => { if (!this.state.dragging) return; const position = getControlPosition(e, this.state.touchIdentifier, this); @@ -324,27 +325,27 @@ export default class DraggableCore extends React.Component { removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop); }; - onMouseDown: EventHandler = (e) => { + onMouseDown: EventHandler = (e) => { dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse return this.handleDragStart(e); }; - onMouseUp: EventHandler = (e) => { + onMouseUp: EventHandler = (e) => { dragEventFor = eventsFor.mouse; return this.handleDragStop(e); }; // Same as onMouseDown (start drag), but now consider this a touch device. - onTouchStart: EventHandler = (e) => { + onTouchStart: EventHandler = (e) => { // We're on a touch device now, so change the event handlers dragEventFor = eventsFor.touch; return this.handleDragStart(e); }; - onTouchEnd: EventHandler = (e) => { + onTouchEnd: EventHandler = (e) => { // We're on a touch device now, so change the event handlers dragEventFor = eventsFor.touch; diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index 0e1a6b79..da2fe05e 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -114,12 +114,12 @@ export function createSVGTransform({x, y}: {x: number, y: number}): string { return 'translate(' + x + ',' + y + ')'; } -export function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} { +export function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} { return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) || (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier)); } -export function getTouchIdentifier(e: MouseEvent): ?number { +export function getTouchIdentifier(e: MouseTouchEvent): ?number { if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; } diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.es6 index acd84f07..c67a8685 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.es6 @@ -65,7 +65,7 @@ export function canDragY(draggable: Draggable): boolean { } // Get {x, y} positions from event. -export function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition { +export function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition { const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null; if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch const node = ReactDOM.findDOMNode(draggableCore); @@ -76,8 +76,7 @@ export function getControlPosition(e: MouseEvent, touchIdentifier: ?number, drag // Create an data object exposed by 's events export function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData { - // State changes are often (but not always!) async. We want the latest value. - const state = draggable._pendingState || draggable.state; + const state = draggable.state; const isStart = !isNum(state.lastX); if (isStart) { diff --git a/lib/utils/shims.es6 b/lib/utils/shims.es6 index 0c6719b6..96905902 100644 --- a/lib/utils/shims.es6 +++ b/lib/utils/shims.es6 @@ -1,6 +1,6 @@ // @flow // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc -export function findInArray(array: Array, callback: Function): any { +export function findInArray(array: Array | TouchList, callback: Function): any { for (let i = 0, length = array.length; i < length; i++) { if (callback.apply(callback, [array[i], i, array])) return array[i]; } diff --git a/lib/utils/types.es6 b/lib/utils/types.es6 index a654e192..34ef3377 100644 --- a/lib/utils/types.es6 +++ b/lib/utils/types.es6 @@ -1,5 +1,6 @@ // @flow +// eslint-disable-next-line no-use-before-define export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false; export type DraggableData = { diff --git a/package.json b/package.json index 289a32aa..ea1e86da 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "babel-preset-stage-1": "^6.5.0", "eslint": "^3.1.1", "eslint-plugin-react": "^5.2.2", + "flow-bin": "^0.33.0", "jasmine-core": "^2.4.1", "json-loader": "^0.5.4", "karma": "^1.1.1", From 13a2e02944bbf37f68935676f15dfdfb3058b866 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 18:14:22 -0500 Subject: [PATCH 221/412] Fix duplicate AppVeyor key --- appveyor.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 8c3fbdb6..71190887 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -5,22 +5,16 @@ environment: - node_version: "7" - node_version: "6" - node_version: "4" + IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplorer.exe" cache: - - node_modules - -environment: - IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplorer.exe" + - "%LOCALAPPDATA%/Yarn" install: - - ps: Install-Product node $env:node_version - choco install -i yarn - refreshenv - yarn install -cache: - - "%LOCALAPPDATA%/Yarn" - test_script: - npm run test-ie From 3983423642ffa8b34246dd8d078c3aee993d58b6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 18:16:52 -0500 Subject: [PATCH 222/412] Node 7 not yet working on appveyor --- appveyor.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 71190887..a486db72 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,7 +2,7 @@ environment: matrix: - - node_version: "7" + # - node_version: "7" - node_version: "6" - node_version: "4" IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplorer.exe" @@ -11,6 +11,7 @@ cache: - "%LOCALAPPDATA%/Yarn" install: + - ps: Install-Product node $env:node_version - choco install -i yarn - refreshenv - yarn install From 41c21e1b5631bf1a14eccaa3e049454c9f85f320 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 18:20:15 -0500 Subject: [PATCH 223/412] Fixups for IE karma config --- karma.conf.js | 14 +++++++------- package.json | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index ff464a47..11ea3dd7 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -82,13 +82,13 @@ module.exports = function(config) { singleRun: true, plugins: [ - require('karma-jasmine'), - require('karma-phantomjs-launcher'), - require('karma-firefox-launcher'), - require('karma-chrome-launcher'), - require('karma-ie-launcher'), - require('karma-webpack'), - require('karma-phantomjs-shim') + 'karma-jasmine', + 'karma-phantomjs-launcher', + 'karma-firefox-launcher', + 'karma-chrome-launcher', + 'karma-ie-launcher', + 'karma-webpack', + 'karma-phantomjs-shim', ] }); }; diff --git a/package.json b/package.json index ea1e86da..008beb29 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "browser": "dist/react-draggable.js", "scripts": { "test": "make test", - "test-debug": "karma start --browsers=Chrome --single-run=false", - "test-ie": "karma start --single-run --browsers ie", + "test-debug": "karma start --browsers=Chrome --single-run", + "test-ie": "karma start --browsers=IE --single-run", "dev": "make dev", "build": "make clean build", "lint": "make lint" From a20a4e0a6f42ef686ddc15e2173d2a480b4caa3c Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 19:02:00 -0500 Subject: [PATCH 224/412] AppVeyor: 'iexplore.exe', no r$ --- appveyor.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index a486db72..7e6e5e8b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -5,9 +5,10 @@ environment: # - node_version: "7" - node_version: "6" - node_version: "4" - IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplorer.exe" + IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplore.exe" cache: + - node_modules - "%LOCALAPPDATA%/Yarn" install: From de6a17f31a6eb5a247275c4b2593164d8d94dec6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 19:16:29 -0500 Subject: [PATCH 225/412] Add env=test so CI builds use babel-plugin-espower --- karma.conf.js | 1 + 1 file changed, 1 insertion(+) diff --git a/karma.conf.js b/karma.conf.js index 11ea3dd7..af84862c 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,4 +1,5 @@ var webpack = require('webpack'); +process.env.NODE_ENV = 'test'; module.exports = function(config) { config.set({ From 9d3bbf98eb469b9da12405b5bf42e0a2bafdf28b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 25 Oct 2016 20:06:31 -0500 Subject: [PATCH 226/412] IE test fixes --- lib/utils/domFns.es6 | 3 ++- package.json | 4 ++-- specs/draggable.spec.jsx | 34 +++++++++++++++++----------------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.es6 index da2fe05e..43cba33b 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.es6 @@ -130,6 +130,7 @@ export function getTouchIdentifier(e: MouseTouchEvent): ?number { const userSelectPrefix = getPrefix('user-select'); const userSelect = browserPrefixToStyle('user-select', userSelectPrefix); const userSelectStyle = `;${userSelect}: none;`; +const userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE // Note we're passing `document` b/c we could be iframed export function addUserSelectStyles(body: HTMLElement) { @@ -139,7 +140,7 @@ export function addUserSelectStyles(body: HTMLElement) { export function removeUserSelectStyles(body: HTMLElement) { const style = body.getAttribute('style') || ''; - body.setAttribute('style', style.replace(userSelectStyle, '')); + body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); } export function styleHacks(childStyle: Object = {}): Object { diff --git a/package.json b/package.json index 008beb29..05f8ab75 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "browser": "dist/react-draggable.js", "scripts": { "test": "make test", - "test-debug": "karma start --browsers=Chrome --single-run", - "test-ie": "karma start --browsers=IE --single-run", + "test-debug": "karma start --browsers=Chrome", + "test-ie": "karma start --browsers=IE", "dev": "make dev", "build": "make clean build", "lint": "make lint" diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 6484e90a..b35bc896 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -324,7 +324,7 @@ describe('react-draggable', function () { }); it('should add and remove user-select styles', function () { - const userSelectStyleStr = `;${userSelectStyle}: none;`; + const userSelectStyleStr = `${userSelectStyle}: none;`; drag = TestUtils.renderIntoDocument( @@ -334,11 +334,11 @@ describe('react-draggable', function () { const node = ReactDOM.findDOMNode(drag); - assert(document.body.getAttribute('style') === ''); + assert(!document.body.getAttribute('style')); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(document.body.getAttribute('style') === userSelectStyleStr); + assert(document.body.getAttribute('style').indexOf(userSelectStyleStr) !== -1); TestUtils.Simulate.mouseUp(node); - assert(document.body.getAttribute('style') === ''); + assert(!document.body.getAttribute('style')); }); it('should not add and remove user-select styles when disabled', function () { @@ -351,11 +351,11 @@ describe('react-draggable', function () { const node = ReactDOM.findDOMNode(drag); - assert(document.body.getAttribute('style') === ''); + assert(!document.body.getAttribute('style')); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(document.body.getAttribute('style') === ''); + assert(!document.body.getAttribute('style')); TestUtils.Simulate.mouseUp(node); - assert(document.body.getAttribute('style') === ''); + assert(!document.body.getAttribute('style')); }); it('should not add and remove user-select styles when onStart returns false', function () { @@ -369,11 +369,11 @@ describe('react-draggable', function () { const node = ReactDOM.findDOMNode(drag); - assert(document.body.getAttribute('style') === ''); + assert(!document.body.getAttribute('style')); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(document.body.getAttribute('style') === ''); + assert(!document.body.getAttribute('style')); TestUtils.Simulate.mouseUp(node); - assert(document.body.getAttribute('style') === ''); + assert(!document.body.getAttribute('style')); }); it('should be draggable when in an iframe', function (done) { @@ -401,7 +401,7 @@ describe('react-draggable', function () { }); it('should add and remove user-select styles to iframe’s body when in an iframe', function (done) { - const userSelectStyleStr = `;${userSelectStyle}: none;`; + const userSelectStyleStr = `${userSelectStyle}: none;`; const dragElement = ( @@ -416,14 +416,14 @@ describe('react-draggable', function () { const node = iframeDoc.querySelector('.react-draggable'); iframeDoc.body.setAttribute('style', ''); - assert(iframeDoc.body.getAttribute('style') === ''); - assert(document.body.getAttribute('style') === ''); + assert(!iframeDoc.body.getAttribute('style')); + assert(!document.body.getAttribute('style')); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(iframeDoc.body.getAttribute('style') === userSelectStyleStr); - assert(document.body.getAttribute('style') === ''); + assert(iframeDoc.body.getAttribute('style').indexOf(userSelectStyleStr) !== -1); + assert(!document.body.getAttribute('style')); TestUtils.Simulate.mouseUp(node); - assert(iframeDoc.body.getAttribute('style') === ''); - assert(document.body.getAttribute('style') === ''); + assert(!iframeDoc.body.getAttribute('style')); + assert(!document.body.getAttribute('style')); renderRoot.parentNode.removeChild(renderRoot); done(); From 8a51de911fccb282d8444641dbd1e7b6d92ae603 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Nov 2016 13:29:10 -0600 Subject: [PATCH 227/412] fix(touch): Fix window scrolling while dragging on iDevices. Fixes #183 Also fixes STRML/react-grid-layout#338 --- lib/DraggableCore.es6 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index b1c390eb..3e0c9e5a 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -253,6 +253,9 @@ export default class DraggableCore extends React.Component { handleDrag: EventHandler = (e) => { + // Prevent scrolling on mobile devices, like ipad/iphone. + if (e.type === 'touchmove') e.preventDefault(); + // Get the current drag point from the event. This is used as the offset. const position = getControlPosition(e, this.state.touchIdentifier, this); if (position == null) return; From b60d1a70ec1a9f498884d4a0b06ae7d78d7f59d7 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Nov 2016 13:33:23 -0600 Subject: [PATCH 228/412] chore(pkg): Update deps --- package.json | 3 +- specs/draggable.spec.jsx | 2 +- yarn.lock | 1773 +++++++++++++++++++------------------- 3 files changed, 911 insertions(+), 867 deletions(-) diff --git a/package.json b/package.json index 05f8ab75..c89f75fc 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "babel-preset-stage-1": "^6.5.0", "eslint": "^3.1.1", "eslint-plugin-react": "^5.2.2", - "flow-bin": "^0.33.0", + "flow-bin": "^0.35.0", "jasmine-core": "^2.4.1", "json-loader": "^0.5.4", "karma": "^1.1.1", @@ -57,6 +57,7 @@ "power-assert": "^1.4.1", "pre-commit": "^1.1.3", "react": "^15.2.1", + "react-addons-test-utils": "^15.4.0", "react-dom": "^15.2.1", "react-frame-component": "0.6.2", "semver": "^5.3.0", diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index b35bc896..e6c65ac2 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -1,7 +1,7 @@ /*eslint no-unused-vars:0, no-console:0*/ import React from 'react'; import ReactDOM from 'react-dom'; -import TestUtils from 'react/lib/ReactTestUtils'; +import TestUtils from 'react-addons-test-utils'; import Draggable, {DraggableCore} from '../index'; import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; diff --git a/yarn.lock b/yarn.lock index 3d18858a..39f2bff1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,215 +1,221 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 + + +Base64@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" + abbrev@1: version "1.0.9" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -accepts@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" - dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" accepts@1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" dependencies: mime-types "~2.0.4" negotiator "0.4.9" +accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + acorn-es7-plugin@^1.0.12: version "1.1.3" - resolved "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.3.tgz#6a032a71f1faf396a1a29729c7b150fe480cc17a" + resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.3.tgz#6a032a71f1faf396a1a29729c7b150fe480cc17a" acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" -acorn@^3.0.0, acorn@^3.0.4, acorn@^3.1.0: +acorn@^3.0.0, acorn@^3.0.4: version "3.3.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.1: +acorn@^4.0.0, acorn@^4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" after@0.8.1: version "0.8.1" - resolved "https://registry.npmjs.org/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" ajv-keywords@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" ajv@^4.7.0: - version "4.8.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-4.8.2.tgz#65486936ca36fea39a1504332a78bebd5d447bdc" + version "4.9.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.9.0.tgz#5a358085747b134eb567d6d15e015f1d7802f45c" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" dependencies: kind-of "^3.0.2" longest "^1.0.1" repeat-string "^1.5.2" amdefine@>=0.0.4: - version "1.0.0" - resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz#fd17474700cb5cc9c2b709f0be9d23ce3c198c33" + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" ansi-escapes@^1.1.0: version "1.4.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" ansi-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" ansi-styles@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" anymatch@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" dependencies: arrify "^1.0.0" micromatch "^2.1.5" aproba@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" are-we-there-yet@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" dependencies: delegates "^1.0.0" readable-stream "^2.0.0 || ^1.1.13" argparse@^1.0.7: version "1.0.9" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" dependencies: sprintf-js "~1.0.2" arr-diff@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" dependencies: arr-flatten "^1.0.1" arr-flatten@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" array-filter@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" array-slice@^0.2.3: version "0.2.3" - resolved "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" array-union@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" array-unique@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" arraybuffer.slice@0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" arrify@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" asap@~2.0.3: version "2.0.5" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" asn1@~0.2.3: version "0.2.3" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" assert-plus@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" assert@^1.1.1: version "1.4.1" - resolved "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" dependencies: util "0.10.3" async-each@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" async@^0.9.0, async@~0.9.0: version "0.9.2" - resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" async@^1.3.0: version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@^2.0.1: version "2.1.2" - resolved "https://registry.npmjs.org/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385" dependencies: lodash "^4.14.0" async@~0.2.6: version "0.2.10" - resolved "https://registry.npmjs.org/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" aws-sign2@~0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" aws4@^1.2.1: version "1.5.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" babel-cli@^6.10.1: version "6.18.0" - resolved "https://registry.npmjs.org/babel-cli/-/babel-cli-6.18.0.tgz#92117f341add9dead90f6fa7d0a97c0cc08ec186" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.18.0.tgz#92117f341add9dead90f6fa7d0a97c0cc08ec186" dependencies: babel-core "^6.18.0" babel-polyfill "^6.16.0" @@ -230,15 +236,15 @@ babel-cli@^6.10.1: babel-code-frame@^6.16.0: version "6.16.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" dependencies: chalk "^1.1.0" esutils "^2.0.2" js-tokens "^2.0.0" babel-core@^6.10.4, babel-core@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.18.0.tgz#bb5ce9bc0a956e6e94e2f12d597abb3b0b330deb" + version "6.18.2" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.18.2.tgz#d8bb14dd6986fa4f3566a26ceda3964fa0e04e5b" dependencies: babel-code-frame "^6.16.0" babel-generator "^6.18.0" @@ -262,7 +268,7 @@ babel-core@^6.10.4, babel-core@^6.18.0: babel-eslint@^6.1.2: version "6.1.2" - resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-6.1.2.tgz#5293419fe3672d66598d327da9694567ba6a5f2f" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-6.1.2.tgz#5293419fe3672d66598d327da9694567ba6a5f2f" dependencies: babel-traverse "^6.0.20" babel-types "^6.0.19" @@ -271,12 +277,12 @@ babel-eslint@^6.1.2: lodash.pickby "^4.0.0" babel-generator@^6.1.0, babel-generator@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.18.0.tgz#e4f104cb3063996d9850556a45aae4a022060a07" + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.19.0.tgz#9b2f244204777a3d6810ec127c673c87b349fac5" dependencies: babel-messages "^6.8.0" babel-runtime "^6.9.0" - babel-types "^6.18.0" + babel-types "^6.19.0" detect-indent "^4.0.0" jsesc "^1.3.0" lodash "^4.2.0" @@ -284,7 +290,7 @@ babel-generator@^6.1.0, babel-generator@^6.18.0: babel-helper-bindify-decorators@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz#fc00c573676a6e702fffa00019580892ec8780a5" + resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz#fc00c573676a6e702fffa00019580892ec8780a5" dependencies: babel-runtime "^6.0.0" babel-traverse "^6.18.0" @@ -292,7 +298,7 @@ babel-helper-bindify-decorators@^6.18.0: babel-helper-builder-binary-assignment-operator-visitor@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6" dependencies: babel-helper-explode-assignable-expression "^6.18.0" babel-runtime "^6.0.0" @@ -300,7 +306,7 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.8.0: babel-helper-builder-react-jsx@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71" dependencies: babel-runtime "^6.9.0" babel-types "^6.18.0" @@ -309,7 +315,7 @@ babel-helper-builder-react-jsx@^6.8.0: babel-helper-call-delegate@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" dependencies: babel-helper-hoist-variables "^6.18.0" babel-runtime "^6.0.0" @@ -318,7 +324,7 @@ babel-helper-call-delegate@^6.18.0: babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" dependencies: babel-helper-function-name "^6.18.0" babel-runtime "^6.9.0" @@ -327,7 +333,7 @@ babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: babel-helper-explode-assignable-expression@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe" dependencies: babel-runtime "^6.0.0" babel-traverse "^6.18.0" @@ -335,7 +341,7 @@ babel-helper-explode-assignable-expression@^6.18.0: babel-helper-explode-class@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz#c44f76f4fa23b9c5d607cbac5d4115e7a76f62cb" + resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz#c44f76f4fa23b9c5d607cbac5d4115e7a76f62cb" dependencies: babel-helper-bindify-decorators "^6.18.0" babel-runtime "^6.0.0" @@ -344,7 +350,7 @@ babel-helper-explode-class@^6.8.0: babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" dependencies: babel-helper-get-function-arity "^6.18.0" babel-runtime "^6.0.0" @@ -354,28 +360,28 @@ babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: babel-helper-get-function-arity@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" dependencies: babel-runtime "^6.0.0" babel-types "^6.18.0" babel-helper-hoist-variables@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" dependencies: babel-runtime "^6.0.0" babel-types "^6.18.0" babel-helper-optimise-call-expression@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" dependencies: babel-runtime "^6.0.0" babel-types "^6.18.0" babel-helper-regex@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" dependencies: babel-runtime "^6.9.0" babel-types "^6.18.0" @@ -383,7 +389,7 @@ babel-helper-regex@^6.8.0: babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-generator@^6.16.2: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.18.0.tgz#336cdf3cab650bb191b02fc16a3708e7be7f9ce5" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.18.0.tgz#336cdf3cab650bb191b02fc16a3708e7be7f9ce5" dependencies: babel-helper-function-name "^6.18.0" babel-runtime "^6.0.0" @@ -393,7 +399,7 @@ babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-gener babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" dependencies: babel-helper-optimise-call-expression "^6.18.0" babel-messages "^6.8.0" @@ -404,34 +410,35 @@ babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: babel-helpers@^6.16.0: version "6.16.0" - resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3" dependencies: babel-runtime "^6.0.0" babel-template "^6.16.0" babel-loader@^6.2.4: - version "6.2.5" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.5.tgz#576d548520689a5e6b70c65b85d76af1ffedd005" + version "6.2.8" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.2.8.tgz#30d7183aef60afc140b36443676b7acb4c12ac9c" dependencies: + find-cache-dir "^0.1.1" loader-utils "^0.2.11" mkdirp "^0.5.1" object-assign "^4.0.1" babel-messages@^6.8.0: version "6.8.0" - resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" dependencies: babel-runtime "^6.0.0" babel-plugin-check-es2015-constants@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7" dependencies: babel-runtime "^6.0.0" babel-plugin-espower@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.3.1.tgz#d15e904bc9949b14ac233b7965c2a5dc7a19a6a9" + resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.1.tgz#d15e904bc9949b14ac233b7965c2a5dc7a19a6a9" dependencies: babel-generator "^6.1.0" babylon "^6.1.0" @@ -443,55 +450,55 @@ babel-plugin-espower@^2.3.1: babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" babel-plugin-syntax-async-generators@^6.5.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" babel-plugin-syntax-class-constructor-call@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" babel-plugin-syntax-decorators@^6.13.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" babel-plugin-syntax-dynamic-import@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" babel-plugin-syntax-export-extensions@^6.8.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13, babel-plugin-syntax-flow@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" babel-plugin-syntax-trailing-function-commas@^6.3.13: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.13.0.tgz#2b84b7d53dd744f94ff1fad7669406274b23f541" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.13.0.tgz#2b84b7d53dd744f94ff1fad7669406274b23f541" babel-plugin-transform-async-generator-functions@^6.17.0: version "6.17.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz#d0b5a2b2f0940f2b245fa20a00519ed7bc6cae54" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz#d0b5a2b2f0940f2b245fa20a00519ed7bc6cae54" dependencies: babel-helper-remap-async-to-generator "^6.16.2" babel-plugin-syntax-async-generators "^6.5.0" @@ -499,7 +506,7 @@ babel-plugin-transform-async-generator-functions@^6.17.0: babel-plugin-transform-async-to-generator@^6.16.0: version "6.16.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" dependencies: babel-helper-remap-async-to-generator "^6.16.0" babel-plugin-syntax-async-functions "^6.8.0" @@ -507,23 +514,24 @@ babel-plugin-transform-async-to-generator@^6.16.0: babel-plugin-transform-class-constructor-call@^6.3.13: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.18.0.tgz#80855e38a1ab47b8c6c647f8ea1bcd2c00ca3aae" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.18.0.tgz#80855e38a1ab47b8c6c647f8ea1bcd2c00ca3aae" dependencies: babel-plugin-syntax-class-constructor-call "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.8.0" babel-plugin-transform-class-properties@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.18.0.tgz#bc1266a39d4c8726e0bd7b15c56235177e6ede57" + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.19.0.tgz#1274b349abaadc835164e2004f4a2444a2788d5f" dependencies: babel-helper-function-name "^6.18.0" babel-plugin-syntax-class-properties "^6.8.0" babel-runtime "^6.9.1" + babel-template "^6.15.0" babel-plugin-transform-decorators@^6.13.0: version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz#82d65c1470ae83e2d13eebecb0a1c2476d62da9d" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz#82d65c1470ae83e2d13eebecb0a1c2476d62da9d" dependencies: babel-helper-define-map "^6.8.0" babel-helper-explode-class "^6.8.0" @@ -534,19 +542,19 @@ babel-plugin-transform-decorators@^6.13.0: babel-plugin-transform-es2015-arrow-functions@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d" dependencies: babel-runtime "^6.0.0" babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d" dependencies: babel-runtime "^6.0.0" babel-plugin-transform-es2015-block-scoping@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af" dependencies: babel-runtime "^6.9.0" babel-template "^6.15.0" @@ -556,7 +564,7 @@ babel-plugin-transform-es2015-block-scoping@^6.18.0: babel-plugin-transform-es2015-classes@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" dependencies: babel-helper-define-map "^6.18.0" babel-helper-function-name "^6.18.0" @@ -570,34 +578,34 @@ babel-plugin-transform-es2015-classes@^6.18.0: babel-plugin-transform-es2015-computed-properties@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870" dependencies: babel-helper-define-map "^6.8.0" babel-runtime "^6.0.0" babel-template "^6.8.0" babel-plugin-transform-es2015-destructuring@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.18.0.tgz#a08fb89415ab82058649558bedb7bf8dafa76ba5" + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz#ff1d911c4b3f4cab621bd66702a869acd1900533" dependencies: babel-runtime "^6.9.0" babel-plugin-transform-es2015-duplicate-keys@^6.6.0: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d" dependencies: babel-runtime "^6.0.0" babel-types "^6.8.0" babel-plugin-transform-es2015-for-of@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" dependencies: babel-runtime "^6.0.0" babel-plugin-transform-es2015-function-name@^6.9.0: version "6.9.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719" dependencies: babel-helper-function-name "^6.8.0" babel-runtime "^6.9.0" @@ -605,13 +613,13 @@ babel-plugin-transform-es2015-function-name@^6.9.0: babel-plugin-transform-es2015-literals@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468" dependencies: babel-runtime "^6.0.0" babel-plugin-transform-es2015-modules-amd@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" dependencies: babel-plugin-transform-es2015-modules-commonjs "^6.18.0" babel-runtime "^6.0.0" @@ -619,7 +627,7 @@ babel-plugin-transform-es2015-modules-amd@^6.18.0: babel-plugin-transform-es2015-modules-commonjs@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" dependencies: babel-plugin-transform-strict-mode "^6.18.0" babel-runtime "^6.0.0" @@ -627,8 +635,8 @@ babel-plugin-transform-es2015-modules-commonjs@^6.18.0: babel-types "^6.18.0" babel-plugin-transform-es2015-modules-systemjs@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.18.0.tgz#f09294707163edae4d3b3e8bfacecd01d920b7ad" + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz#50438136eba74527efa00a5b0fefaf1dc4071da6" dependencies: babel-helper-hoist-variables "^6.18.0" babel-runtime "^6.11.6" @@ -636,7 +644,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.18.0: babel-plugin-transform-es2015-modules-umd@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" dependencies: babel-plugin-transform-es2015-modules-amd "^6.18.0" babel-runtime "^6.0.0" @@ -644,14 +652,14 @@ babel-plugin-transform-es2015-modules-umd@^6.18.0: babel-plugin-transform-es2015-object-super@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5" dependencies: babel-helper-replace-supers "^6.8.0" babel-runtime "^6.0.0" babel-plugin-transform-es2015-parameters@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" dependencies: babel-helper-call-delegate "^6.18.0" babel-helper-get-function-arity "^6.18.0" @@ -662,20 +670,20 @@ babel-plugin-transform-es2015-parameters@^6.18.0: babel-plugin-transform-es2015-shorthand-properties@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" dependencies: babel-runtime "^6.0.0" babel-types "^6.18.0" babel-plugin-transform-es2015-spread@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c" dependencies: babel-runtime "^6.0.0" babel-plugin-transform-es2015-sticky-regex@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be" dependencies: babel-helper-regex "^6.8.0" babel-runtime "^6.0.0" @@ -683,19 +691,19 @@ babel-plugin-transform-es2015-sticky-regex@^6.3.13: babel-plugin-transform-es2015-template-literals@^6.6.0: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b" dependencies: babel-runtime "^6.0.0" babel-plugin-transform-es2015-typeof-symbol@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" dependencies: babel-runtime "^6.0.0" babel-plugin-transform-es2015-unicode-regex@^6.3.13: version "6.11.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c" dependencies: babel-helper-regex "^6.8.0" babel-runtime "^6.0.0" @@ -703,7 +711,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.3.13: babel-plugin-transform-exponentiation-operator@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4" dependencies: babel-helper-builder-binary-assignment-operator-visitor "^6.8.0" babel-plugin-syntax-exponentiation-operator "^6.8.0" @@ -711,55 +719,55 @@ babel-plugin-transform-exponentiation-operator@^6.3.13: babel-plugin-transform-export-extensions@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.8.0.tgz#fa80ff655b636549431bfd38f6b817bd82e47f5b" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.8.0.tgz#fa80ff655b636549431bfd38f6b817bd82e47f5b" dependencies: babel-plugin-syntax-export-extensions "^6.8.0" babel-runtime "^6.0.0" babel-plugin-transform-flow-comments@^6.8.0: version "6.17.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-flow-comments/-/babel-plugin-transform-flow-comments-6.17.0.tgz#a7aabecef1800f76facaf06d8e967fd39dac7728" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-comments/-/babel-plugin-transform-flow-comments-6.17.0.tgz#a7aabecef1800f76facaf06d8e967fd39dac7728" dependencies: babel-plugin-syntax-flow "^6.8.0" babel-runtime "^6.0.0" babel-plugin-transform-flow-strip-types@^6.3.13: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.18.0.tgz#4d3e642158661e9b40db457c004a30817fa32592" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.18.0.tgz#4d3e642158661e9b40db457c004a30817fa32592" dependencies: babel-plugin-syntax-flow "^6.18.0" babel-runtime "^6.0.0" babel-plugin-transform-object-rest-spread@^6.16.0: - version "6.16.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.16.0.tgz#db441d56fffc1999052fdebe2e2f25ebd28e36a9" + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.19.0.tgz#f6ac428ee3cb4c6aa00943ed1422ce813603b34c" dependencies: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.0.0" babel-plugin-transform-react-display-name@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.8.0.tgz#f7a084977383d728bdbdc2835bba0159577f660e" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.8.0.tgz#f7a084977383d728bdbdc2835bba0159577f660e" dependencies: babel-runtime "^6.0.0" babel-plugin-transform-react-jsx-self@^6.11.0: version "6.11.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.11.0.tgz#605c9450c1429f97a930f7e1dfe3f0d9d0dbd0f4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.11.0.tgz#605c9450c1429f97a930f7e1dfe3f0d9d0dbd0f4" dependencies: babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.9.0" babel-plugin-transform-react-jsx-source@^6.3.13: version "6.9.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.9.0.tgz#af684a05c2067a86e0957d4f343295ccf5dccf00" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.9.0.tgz#af684a05c2067a86e0957d4f343295ccf5dccf00" dependencies: babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.9.0" babel-plugin-transform-react-jsx@^6.3.13: version "6.8.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.8.0.tgz#94759942f70af18c617189aa7f3593f1644a71ab" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.8.0.tgz#94759942f70af18c617189aa7f3593f1644a71ab" dependencies: babel-helper-builder-react-jsx "^6.8.0" babel-plugin-syntax-jsx "^6.8.0" @@ -767,7 +775,7 @@ babel-plugin-transform-react-jsx@^6.3.13: babel-plugin-transform-regenerator@^6.16.0: version "6.16.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" dependencies: babel-runtime "^6.9.0" babel-types "^6.16.0" @@ -775,14 +783,14 @@ babel-plugin-transform-regenerator@^6.16.0: babel-plugin-transform-strict-mode@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" dependencies: babel-runtime "^6.0.0" babel-types "^6.18.0" babel-polyfill@^6.16.0: version "6.16.0" - resolved "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422" dependencies: babel-runtime "^6.9.1" core-js "^2.4.0" @@ -790,7 +798,7 @@ babel-polyfill@^6.16.0: babel-preset-es2015@^6.9.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" dependencies: babel-plugin-check-es2015-constants "^6.3.13" babel-plugin-transform-es2015-arrow-functions "^6.3.13" @@ -819,7 +827,7 @@ babel-preset-es2015@^6.9.0: babel-preset-react@^6.11.1: version "6.16.0" - resolved "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.16.0.tgz#aa117d60de0928607e343c4828906e4661824316" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.16.0.tgz#aa117d60de0928607e343c4828906e4661824316" dependencies: babel-plugin-syntax-flow "^6.3.13" babel-plugin-syntax-jsx "^6.3.13" @@ -831,7 +839,7 @@ babel-preset-react@^6.11.1: babel-preset-stage-1@^6.5.0: version "6.16.0" - resolved "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.16.0.tgz#9d31fbbdae7b17c549fd3ac93e3cf6902695e479" + resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.16.0.tgz#9d31fbbdae7b17c549fd3ac93e3cf6902695e479" dependencies: babel-plugin-transform-class-constructor-call "^6.3.13" babel-plugin-transform-export-extensions "^6.3.13" @@ -839,7 +847,7 @@ babel-preset-stage-1@^6.5.0: babel-preset-stage-2@^6.16.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz#9eb7bf9a8e91c68260d5ba7500493caaada4b5b5" + resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz#9eb7bf9a8e91c68260d5ba7500493caaada4b5b5" dependencies: babel-plugin-syntax-dynamic-import "^6.18.0" babel-plugin-transform-class-properties "^6.18.0" @@ -848,7 +856,7 @@ babel-preset-stage-2@^6.16.0: babel-preset-stage-3@^6.17.0: version "6.17.0" - resolved "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz#b6638e46db6e91e3f889013d8ce143917c685e39" + resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz#b6638e46db6e91e3f889013d8ce143917c685e39" dependencies: babel-plugin-syntax-trailing-function-commas "^6.3.13" babel-plugin-transform-async-generator-functions "^6.17.0" @@ -858,7 +866,7 @@ babel-preset-stage-3@^6.17.0: babel-register@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" dependencies: babel-core "^6.18.0" babel-runtime "^6.11.6" @@ -870,14 +878,14 @@ babel-register@^6.18.0: babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.9.0, babel-runtime@^6.9.1: version "6.18.0" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" dependencies: core-js "^2.4.0" regenerator-runtime "^0.9.5" babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.8.0: version "6.16.0" - resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" dependencies: babel-runtime "^6.9.0" babel-traverse "^6.16.0" @@ -886,22 +894,22 @@ babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-te lodash "^4.2.0" babel-traverse@^6.0.20, babel-traverse@^6.16.0, babel-traverse@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.18.0.tgz#5aeaa980baed2a07c8c47329cd90c3b90c80f05e" + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.19.0.tgz#68363fb821e26247d52a519a84b2ceab8df4f55a" dependencies: babel-code-frame "^6.16.0" babel-messages "^6.8.0" babel-runtime "^6.9.0" - babel-types "^6.18.0" + babel-types "^6.19.0" babylon "^6.11.0" debug "^2.2.0" globals "^9.0.0" invariant "^2.2.0" lodash "^4.2.0" -babel-types@^6.0.19, babel-types@^6.13.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.8.0, babel-types@^6.9.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.18.0.tgz#1f7d5a73474c59eb9151b2417bbff4e4fce7c3f8" +babel-types@^6.0.19, babel-types@^6.13.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.8.0, babel-types@^6.9.0: + version "6.19.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.19.0.tgz#8db2972dbed01f1192a8b602ba1e1e4c516240b9" dependencies: babel-runtime "^6.9.1" esutils "^2.0.2" @@ -909,84 +917,80 @@ babel-types@^6.0.19, babel-types@^6.13.0, babel-types@^6.16.0, babel-types@^6.18 to-fast-properties "^1.0.1" babylon@^6.0.18, babylon@^6.1.0, babylon@^6.11.0: - version "6.13.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.13.0.tgz#58ed40dd2a8120612be5f318c2c0bedbebde4a0b" + version "6.14.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" backo2@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" balanced-match@^0.4.1: version "0.4.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" base64-arraybuffer@0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154" base64-js@^1.0.2: version "1.2.0" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" - -Base64@~0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" base64id@0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" batch@0.5.3: version "0.5.3" - resolved "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" bcrypt-pbkdf@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" dependencies: tweetnacl "^0.14.3" benchmark@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73" + resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73" better-assert@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" dependencies: callsite "1.0.0" big.js@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" binary-extensions@^1.0.0: version "1.7.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" bl@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" dependencies: readable-stream "~2.0.5" blob@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" block-stream@*: version "0.0.9" - resolved "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" dependencies: inherits "~2.0.0" bluebird@^3.3.0: version "3.4.6" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" body-parser@^1.12.4: version "1.15.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.15.2.tgz#d7578cf4f1d11d5f6ea804cef35dc7a7ff6dae67" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.15.2.tgz#d7578cf4f1d11d5f6ea804cef35dc7a7ff6dae67" dependencies: bytes "2.4.0" content-type "~1.0.2" @@ -1001,26 +1005,26 @@ body-parser@^1.12.4: boom@2.x.x: version "2.10.1" - resolved "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" dependencies: hoek "2.x.x" brace-expansion@^1.0.0: version "1.1.6" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" dependencies: balanced-match "^0.4.1" concat-map "0.0.1" braces@^0.1.2: version "0.1.5" - resolved "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" dependencies: expand-range "^0.1.0" braces@^1.8.2: version "1.8.5" - resolved "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" dependencies: expand-range "^1.8.1" preserve "^0.2.0" @@ -1028,17 +1032,17 @@ braces@^1.8.2: browserify-zlib@~0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" dependencies: pako "~0.2.0" buffer-shims@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" buffer@^4.9.0: version "4.9.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -1046,15 +1050,15 @@ buffer@^4.9.0: bytes@2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" bytes@2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" call-matcher@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.0.tgz#eafa31036dbfaa9c0d1716f12ddacfd9c69ef22f" + resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.0.tgz#eafa31036dbfaa9c0d1716f12ddacfd9c69ef22f" dependencies: core-js "^2.0.0" deep-equal "^1.0.0" @@ -1063,40 +1067,40 @@ call-matcher@^1.0.0: call-signature@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" + resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" caller-path@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" callsite@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" callsites@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" camelcase@^1.0.2: version "1.2.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" caseless@~0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" center-align@^0.1.1: version "0.1.3" - resolved "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" dependencies: align-text "^0.1.3" lazy-cache "^1.0.3" chalk@^0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" dependencies: ansi-styles "^1.1.0" escape-string-regexp "^1.0.0" @@ -1106,7 +1110,7 @@ chalk@^0.5.1: chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -1116,7 +1120,7 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: chokidar@^1.0.0, chokidar@^1.4.1: version "1.6.1" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" dependencies: anymatch "^1.3.0" async-each "^1.0.0" @@ -1131,25 +1135,25 @@ chokidar@^1.0.0, chokidar@^1.4.1: circular-json@^0.3.0: version "0.3.1" - resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" classnames@^2.2.5: version "2.2.5" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" cli-cursor@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" dependencies: restore-cursor "^1.0.1" cli-width@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" cliui@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" dependencies: center-align "^0.1.1" right-align "^0.1.1" @@ -1157,65 +1161,67 @@ cliui@^2.1.0: clone@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" co@^4.6.0: version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" code-point-at@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.1.tgz#1104cd34f9b5b45d3eba88f1babc1924e1ce35fb" - dependencies: - number-is-nan "^1.0.0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" colors@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" combine-lists@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" dependencies: lodash "^4.5.0" combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" dependencies: delayed-stream "~1.0.0" commander@^2.3.0, commander@^2.8.1, commander@^2.9.0: version "2.9.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + component-bind@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" component-emitter@1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" component-emitter@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe" component-inherit@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" compressible@~2.0.8: - version "2.0.8" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.8.tgz#7162e6c46d3b9d200ffb45cb4e4a0f7832732503" + version "2.0.9" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.9.tgz#6daab4e2b599c2770dd9e21e7a891b1c5a755425" dependencies: - mime-db ">= 1.23.0 < 2" + mime-db ">= 1.24.0 < 2" compression@^1.5.2: version "1.6.2" - resolved "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" dependencies: accepts "~1.3.3" bytes "2.3.0" @@ -1226,19 +1232,19 @@ compression@^1.5.2: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.6, concat-stream@^1.4.7: - version "1.5.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" +concat-stream@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" dependencies: inherits "~2.0.1" readable-stream "~2.0.0" typedarray "~0.0.5" -concat-stream@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" +concat-stream@^1.4.6, concat-stream@^1.4.7: + version "1.5.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" dependencies: inherits "~2.0.1" readable-stream "~2.0.0" @@ -1246,11 +1252,11 @@ concat-stream@1.5.0: connect-history-api-fallback@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" connect@^3.3.5: version "3.5.0" - resolved "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198" dependencies: debug "~2.2.0" finalhandler "0.5.0" @@ -1259,73 +1265,73 @@ connect@^3.3.5: console-browserify@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" dependencies: date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" constants-browserify@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" content-disposition@0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" content-type@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" convert-source-map@^1.1.0: version "1.3.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" cookie@0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" core-js@^1.0.0: version "1.2.7" - resolved "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0: version "2.4.1" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" cross-spawn-async@^2.0.0: - version "2.2.4" - resolved "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.4.tgz#c9a8d8e9a06502c7a46296e33a1a054b5d2f1812" + version "2.2.5" + resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc" dependencies: lru-cache "^4.0.0" which "^1.2.8" cross-spawn@2.0.x: version "2.0.1" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-2.0.1.tgz#ab6fd893a099759d9b85220e3a64397de946b0f6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-2.0.1.tgz#ab6fd893a099759d9b85220e3a64397de946b0f6" dependencies: cross-spawn-async "^2.0.0" spawn-sync "1.0.13" cryptiles@2.x.x: version "2.0.5" - resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" dependencies: boom "2.x.x" crypto-browserify@~3.2.6: version "3.2.8" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" dependencies: pbkdf2-compat "2.0.1" ripemd160 "0.2.0" @@ -1333,60 +1339,66 @@ crypto-browserify@~3.2.6: custom-event@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" d@^0.1.1, d@~0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" dependencies: es5-ext "~0.10.2" dashdash@^1.12.0: version "1.14.0" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" dependencies: assert-plus "^1.0.0" date-now@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" -debug@^2.1.1, debug@^2.2.0, debug@~2.2.0, debug@2.2.0: +debug@2.2.0, debug@~2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: ms "0.7.1" -debug@0.7.4: - version "0.7.4" - resolved "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" +debug@^2.1.1, debug@^2.2.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" decamelize@^1.0.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" deep-equal@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" deep-extend@~0.4.0: version "0.4.1" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" deep-is@~0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" define-properties@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" dependencies: foreach "^2.0.5" object-keys "^1.0.8" del@^2.0.2: version "2.2.2" - resolved "https://registry.npmjs.org/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" @@ -1398,44 +1410,44 @@ del@^2.0.2: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" delegates@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" depd@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" destroy@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" detect-indent@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" dependencies: repeating "^2.0.0" di@^0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" diff-match-patch@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" doctrine@^1.2.2: version "1.5.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" dependencies: esutils "^2.0.2" isarray "^1.0.0" dom-serialize@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" dependencies: custom-event "~1.0.0" ent "~2.2.0" @@ -1444,53 +1456,53 @@ dom-serialize@^2.2.0: domain-browser@^1.1.1: version "1.1.7" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" eastasianwidth@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c" ecc-jsbn@~0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" dependencies: jsbn "~0.1.0" ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" emojis-list@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" empower-core@^0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/empower-core/-/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1" + resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1" dependencies: call-signature "0.0.2" core-js "^2.0.0" empower@^1.1.0: version "1.2.1" - resolved "https://registry.npmjs.org/empower/-/empower-1.2.1.tgz#b63302741b6d503a241bff115befc948c8362c60" + resolved "https://registry.yarnpkg.com/empower/-/empower-1.2.1.tgz#b63302741b6d503a241bff115befc948c8362c60" dependencies: core-js "^2.0.0" empower-core "^0.6.1" encodeurl@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" encoding@^0.1.11: version "0.1.12" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" dependencies: iconv-lite "~0.4.13" engine.io-client@1.6.9: version "1.6.9" - resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz#1d6ad48048a5083c95096943b29d36efdb212401" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.6.9.tgz#1d6ad48048a5083c95096943b29d36efdb212401" dependencies: component-emitter "1.1.2" component-inherit "0.0.3" @@ -1507,7 +1519,7 @@ engine.io-client@1.6.9: engine.io-parser@1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42" dependencies: after "0.8.1" arraybuffer.slice "0.0.6" @@ -1518,7 +1530,7 @@ engine.io-parser@1.2.4: engine.io@1.6.10: version "1.6.10" - resolved "https://registry.npmjs.org/engine.io/-/engine.io-1.6.10.tgz#f87d84e1bd21d1a2ec7f8deef0c62054acdfb27a" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.6.10.tgz#f87d84e1bd21d1a2ec7f8deef0c62054acdfb27a" dependencies: accepts "1.1.4" base64id "0.1.0" @@ -1528,7 +1540,7 @@ engine.io@1.6.10: enhanced-resolve@~0.9.0: version "0.9.1" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" dependencies: graceful-fs "^4.1.2" memory-fs "^0.2.0" @@ -1536,24 +1548,24 @@ enhanced-resolve@~0.9.0: ent@~2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" errno@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" dependencies: prr "~0.0.0" es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: version "0.10.12" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" dependencies: es6-iterator "2" es6-symbol "~3.1" es6-iterator@2: version "2.0.0" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" dependencies: d "^0.1.1" es5-ext "^0.10.7" @@ -1561,7 +1573,7 @@ es6-iterator@2: es6-map@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" dependencies: d "~0.1.1" es5-ext "~0.10.11" @@ -1572,11 +1584,11 @@ es6-map@^0.1.3: es6-promise@~4.0.3: version "4.0.5" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" es6-set@~0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" dependencies: d "~0.1.1" es5-ext "~0.10.11" @@ -1584,16 +1596,16 @@ es6-set@~0.1.3: es6-symbol "3" event-emitter "~0.3.4" -es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: +es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" dependencies: d "~0.1.1" es5-ext "~0.10.11" es6-weak-map@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" dependencies: d "^0.1.1" es5-ext "^0.10.8" @@ -1602,15 +1614,15 @@ es6-weak-map@^2.0.1: escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" escope@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" dependencies: es6-map "^0.1.3" es6-weak-map "^2.0.1" @@ -1619,15 +1631,16 @@ escope@^3.6.0: eslint-plugin-react@^5.2.2: version "5.2.2" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-5.2.2.tgz#7db068e1f5487f6871e4deef36a381c303eac161" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-5.2.2.tgz#7db068e1f5487f6871e4deef36a381c303eac161" dependencies: doctrine "^1.2.2" jsx-ast-utils "^1.2.1" eslint@^3.1.1: - version "3.8.1" - resolved "https://registry.npmjs.org/eslint/-/eslint-3.8.1.tgz#7d02db44cd5aaf4fa7aa489e1f083baa454342ba" + version "3.10.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.10.2.tgz#c9a10e8bf6e9d65651204778c503341f1eac3ce7" dependencies: + babel-code-frame "^6.16.0" chalk "^1.1.3" concat-stream "^1.4.6" debug "^2.1.1" @@ -1639,7 +1652,7 @@ eslint@^3.1.1: file-entry-cache "^2.0.0" glob "^7.0.3" globals "^9.2.0" - ignore "^3.1.5" + ignore "^3.2.0" imurmurhash "^0.1.4" inquirer "^0.12.0" is-my-json-valid "^2.10.0" @@ -1655,7 +1668,7 @@ eslint@^3.1.1: pluralize "^1.2.1" progress "^1.1.8" require-uncached "^1.0.2" - shelljs "^0.6.0" + shelljs "^0.7.5" strip-bom "^3.0.0" strip-json-comments "~1.0.1" table "^3.7.8" @@ -1664,7 +1677,7 @@ eslint@^3.1.1: espower-location-detector@^0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-0.1.2.tgz#d43be738af3e0b18197eeb5c22b95512dee6b83c" + resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-0.1.2.tgz#d43be738af3e0b18197eeb5c22b95512dee6b83c" dependencies: is-url "^1.2.1" path-is-absolute "^1.0.0" @@ -1673,72 +1686,72 @@ espower-location-detector@^0.1.1: espree@^3.3.1: version "3.3.2" - resolved "https://registry.npmjs.org/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" dependencies: acorn "^4.0.1" acorn-jsx "^3.0.0" esprima@^2.6.0: version "2.7.3" - resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" espurify@^1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/espurify/-/espurify-1.6.0.tgz#6cb993582d9422bd6f2d4b258aadb14833f394f0" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.6.0.tgz#6cb993582d9422bd6f2d4b258aadb14833f394f0" dependencies: core-js "^2.0.0" esrecurse@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" dependencies: estraverse "~4.1.0" object-assign "^4.0.1" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" estraverse@~4.1.0: version "4.1.1" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" etag@~1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" event-emitter@~0.3.4: version "0.3.4" - resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" dependencies: d "~0.1.1" es5-ext "~0.10.7" eventemitter3@1.x.x: version "1.2.0" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" events@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" eventsource@~0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" dependencies: original ">=0.0.5" exit-hook@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" expand-braces@^0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" dependencies: array-slice "^0.2.3" array-unique "^0.2.1" @@ -1746,26 +1759,26 @@ expand-braces@^0.1.1: expand-brackets@^0.1.4: version "0.1.5" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" dependencies: is-posix-bracket "^0.1.0" expand-range@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" dependencies: is-number "^0.1.1" repeat-string "^0.2.2" expand-range@^1.8.1: version "1.8.2" - resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" dependencies: fill-range "^2.1.0" express@^4.13.3: version "4.14.0" - resolved "https://registry.npmjs.org/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" + resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" dependencies: accepts "~1.3.3" array-flatten "1.1.1" @@ -1796,17 +1809,17 @@ express@^4.13.3: extend@^3.0.0, extend@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" extglob@^0.3.1: version "0.3.2" - resolved "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" dependencies: is-extglob "^1.0.0" extract-zip@~1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" dependencies: concat-stream "1.5.0" debug "0.7.4" @@ -1815,30 +1828,29 @@ extract-zip@~1.5.0: extsprintf@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" fast-levenshtein@~2.0.4: version "2.0.5" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" faye-websocket@^0.10.0: version "0.10.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" dependencies: websocket-driver ">=0.5.1" faye-websocket@~0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.0.tgz#d9ccf0e789e7db725d74bc4877d23aa42972ac50" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.0.tgz#d9ccf0e789e7db725d74bc4877d23aa42972ac50" dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.4: - version "0.8.5" - resolved "https://registry.npmjs.org/fbjs/-/fbjs-0.8.5.tgz#f69ba8a876096cb1b9bffe4d7c1e71c19d39d008" +fbjs@^0.8.1, fbjs@^0.8.4: + version "0.8.6" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.6.tgz#7eb67d6986b2d5007a9b6e92e0e7cb6f75cad290" dependencies: core-js "^1.0.0" - immutable "^3.7.6" isomorphic-fetch "^2.1.1" loose-envify "^1.0.0" object-assign "^4.1.0" @@ -1847,35 +1859,35 @@ fbjs@^0.8.4: fd-slicer@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" dependencies: pend "~1.2.0" figures@^1.3.5: version "1.7.0" - resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" file-entry-cache@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" file-size@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" + resolved "https://registry.yarnpkg.com/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" filename-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" fill-range@^2.1.0: version "2.2.3" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" dependencies: is-number "^2.1.0" isobject "^2.0.0" @@ -1885,7 +1897,7 @@ fill-range@^2.1.0: finalhandler@0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" dependencies: debug "~2.2.0" escape-html "~1.0.3" @@ -1893,48 +1905,63 @@ finalhandler@0.5.0: statuses "~1.3.0" unpipe "~1.0.0" +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + flat-cache@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" dependencies: circular-json "^0.3.0" del "^2.0.2" graceful-fs "^4.1.2" write "^0.2.1" -flow-bin@^0.33.0: - version "0.33.0" - resolved "https://registry.npmjs.org/flow-bin/-/flow-bin-0.33.0.tgz#ef011eace7a6100f1ae08b852db78279032b8750" +flow-bin@^0.35.0: + version "0.35.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.35.0.tgz#63d4eb9582ce352541be98e6a424503217141b07" for-in@^0.1.5: version "0.1.6" - resolved "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" -for-own@^0.1.3: +for-own@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" dependencies: for-in "^0.1.5" foreach@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" form-data@~1.0.0-rc4: version "1.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" dependencies: async "^2.0.1" combined-stream "^1.0.5" mime-types "^2.1.11" form-data@~2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.1.1.tgz#4adf0342e1a79afa1e84c8c320a9ffc82392a1f3" + version "2.1.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" dependencies: asynckit "^0.4.0" combined-stream "^1.0.5" @@ -1942,21 +1969,21 @@ form-data@~2.1.1: forwarded@~0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" fresh@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" fs-access@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" dependencies: null-check "^1.0.0" fs-extra@~0.30.0: version "0.30.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -1966,22 +1993,22 @@ fs-extra@~0.30.0: fs-readdir-recursive@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.0.14" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.0.14.tgz#558e8cc38643d8ef40fe45158486d0d25758eee4" + version "1.0.15" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" dependencies: nan "^2.3.0" node-pre-gyp "^0.6.29" fstream-ignore@~1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" dependencies: fstream "^1.0.0" inherits "2" @@ -1989,16 +2016,16 @@ fstream-ignore@~1.0.5: fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: version "1.0.10" - resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" mkdirp ">=0.5 0" rimraf "2" -gauge@~2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" +gauge@~2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.1.tgz#388473894fe8be5e13ffcdb8b93e4ed0616428c7" dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -2012,36 +2039,36 @@ gauge@~2.6.0: generate-function@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" generate-object-property@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" dependencies: is-property "^1.0.0" getpass@^0.1.1: version "0.1.6" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" dependencies: assert-plus "^1.0.0" glob-base@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" glob-parent@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" dependencies: is-glob "^2.0.0" glob@^5.0.5: version "5.0.15" - resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" dependencies: inflight "^1.0.4" inherits "2" @@ -2049,9 +2076,9 @@ glob@^5.0.5: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.0.5: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: version "7.1.1" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2061,12 +2088,12 @@ glob@^7.0.3, glob@^7.0.5: path-is-absolute "^1.0.0" globals@^9.0.0, globals@^9.2.0: - version "9.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-9.12.0.tgz#992ce90828c3a55fa8f16fada177adb64664cf9d" + version "9.14.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" globby@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" dependencies: array-union "^1.0.1" arrify "^1.0.0" @@ -2076,16 +2103,16 @@ globby@^5.0.0: pinkie-promise "^2.0.0" graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.9" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz#baacba37d19d11f9d146d3578bc99958c3787e29" + version "4.1.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" "graceful-readlink@>= 1.0.0": version "1.0.1" - resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" har-validator@~2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" dependencies: chalk "^1.1.1" commander "^2.9.0" @@ -2094,54 +2121,54 @@ har-validator@~2.0.6: has-ansi@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" dependencies: ansi-regex "^0.2.0" has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" dependencies: ansi-regex "^2.0.0" has-binary@0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" dependencies: isarray "0.0.1" has-binary@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" dependencies: isarray "0.0.1" has-color@^0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" has-cors@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" has-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" has-unicode@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" hasha@~2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" dependencies: is-stream "^1.0.1" pinkie-promise "^2.0.0" hawk@~3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: boom "2.x.x" cryptiles "2.x.x" @@ -2150,33 +2177,33 @@ hawk@~3.1.3: hoek@2.x.x: version "2.16.3" - resolved "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" home-or-tmp@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" http-browserify@^1.3.2: version "1.7.0" - resolved "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" + resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" dependencies: Base64 "~0.2.0" inherits "~2.0.1" http-errors@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz#b1cb3d8260fd8e2386cad3189045943372d48211" + version "1.5.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" dependencies: - inherits "2.0.1" - setprototypeof "1.0.1" - statuses ">= 1.3.0 < 2" + inherits "2.0.3" + setprototypeof "1.0.2" + statuses ">= 1.3.1 < 2" http-proxy-middleware@~0.17.1: version "0.17.2" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.2.tgz#572d517a6d2fb1063a469de294eed96066352007" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.2.tgz#572d517a6d2fb1063a469de294eed96066352007" dependencies: http-proxy "^1.15.1" is-glob "^3.0.0" @@ -2185,14 +2212,14 @@ http-proxy-middleware@~0.17.1: http-proxy@^1.13.0, http-proxy@^1.15.1: version "1.15.2" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" dependencies: eventemitter3 "1.x.x" requires-port "1.x.x" http-signature@~1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" dependencies: assert-plus "^0.2.0" jsprim "^1.2.2" @@ -2200,54 +2227,50 @@ http-signature@~1.1.0: https-browserify@0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" -iconv-lite@~0.4.13, iconv-lite@0.4.13: +iconv-lite@0.4.13, iconv-lite@~0.4.13: version "0.4.13" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" ieee754@^1.1.4: version "1.1.8" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -ignore@^3.1.5: +ignore@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" - -immutable@^3.7.6: - version "3.8.1" - resolved "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" indexof@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" inherits@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" ini@~1.3.0: version "1.3.4" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" inquirer@^0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" dependencies: ansi-escapes "^1.1.0" ansi-regex "^2.0.0" @@ -2265,81 +2288,85 @@ inquirer@^0.12.0: interpret@^0.6.4: version "0.6.6" - resolved "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + +interpret@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" invariant@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.1.tgz#b097010547668c7e337028ebe816ebe36c8a8d54" + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: loose-envify "^1.0.0" ipaddr.js@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" is-binary-path@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" dependencies: binary-extensions "^1.0.0" is-buffer@^1.0.2: version "1.1.4" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" is-dotfile@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" is-equal-shallow@^0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" dependencies: is-primitive "^2.0.0" is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" is-extglob@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" is-extglob@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" is-finite@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" dependencies: is-extglob "^1.0.0" is-glob@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" dependencies: is-extglob "^2.1.0" is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: version "2.15.0" - resolved "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" dependencies: generate-function "^2.0.0" generate-object-property "^1.1.0" @@ -2348,230 +2375,226 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: is-number@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" is-number@^2.0.2, is-number@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" dependencies: kind-of "^3.0.2" is-path-cwd@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" dependencies: path-is-inside "^1.0.1" is-posix-bracket@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" is-primitive@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" is-property@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" is-resolvable@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" dependencies: tryit "^1.0.1" is-stream@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" is-url@^1.2.1: version "1.2.2" - resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" - -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" isarray@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" isbinaryfile@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.1.tgz#6e99573675372e841a0520c036b41513d783e79e" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.1.tgz#6e99573675372e841a0520c036b41513d783e79e" isexe@^1.1.1: version "1.1.2" - resolved "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" isobject@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" dependencies: isarray "1.0.0" isomorphic-fetch@^2.1.1: version "2.2.1" - resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" dependencies: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" isstream@~0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" jasmine-core@^2.4.1: version "2.5.2" - resolved "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" jodid25519@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" dependencies: jsbn "~0.1.0" -js-tokens@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz#14e56eb68c8f1a92c43d59f5014ec29dc20f2ae1" - js-tokens@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" js-yaml@^3.5.1: - version "3.6.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" dependencies: argparse "^1.0.7" esprima "^2.6.0" jsbn@~0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" jsesc@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" json-loader@^0.5.4: version "0.5.4" - resolved "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" json-schema@0.2.3: version "0.2.3" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" dependencies: jsonify "~0.0.0" json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json3@^3.3.2, json3@3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" json3@3.2.6: version "3.2.6" - resolved "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b" + +json3@3.3.2, json3@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" json5@^0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" optionalDependencies: graceful-fs "^4.1.6" jsonify@~0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" jsonpointer@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" jsprim@^1.2.2: version "1.3.1" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" dependencies: extsprintf "1.0.2" json-schema "0.2.3" verror "1.3.6" jsx-ast-utils@^1.2.1: - version "1.3.2" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.3.2.tgz#dff658782705352111f9865d40471bc4a955961e" + version "1.3.4" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.3.4.tgz#0257ed1cc4b1e65b39d7d9940f9fb4f20f7ba0a9" dependencies: acorn-jsx "^3.0.1" object-assign "^4.1.0" karma-chrome-launcher@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-1.0.1.tgz#be5ae7c4264f9a0a2e22e3d984beb325ad92c8cb" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-1.0.1.tgz#be5ae7c4264f9a0a2e22e3d984beb325ad92c8cb" dependencies: fs-access "^1.0.0" which "^1.2.1" karma-cli@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" + resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" dependencies: resolve "^1.1.6" karma-firefox-launcher@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.0.0.tgz#e08af3ce42e39860c2952ea7b7eaa64d63508bdc" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.0.0.tgz#e08af3ce42e39860c2952ea7b7eaa64d63508bdc" karma-ie-launcher@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz#497986842c490190346cd89f5494ca9830c6d59c" + resolved "https://registry.yarnpkg.com/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz#497986842c490190346cd89f5494ca9830c6d59c" dependencies: lodash "^4.6.1" karma-jasmine@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.0.2.tgz#c0b3ab327bf207db60e17fa27db37cfdef5d8e6c" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.0.2.tgz#c0b3ab327bf207db60e17fa27db37cfdef5d8e6c" karma-phantomjs-launcher@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz#19e1041498fd75563ed86730a22c1fe579fa8fb1" + resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz#19e1041498fd75563ed86730a22c1fe579fa8fb1" dependencies: lodash "^4.0.1" phantomjs-prebuilt "^2.1.7" karma-phantomjs-shim@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/karma-phantomjs-shim/-/karma-phantomjs-shim-1.4.0.tgz#21072f436e07764a425fbbdc15175b537106e7ed" + resolved "https://registry.yarnpkg.com/karma-phantomjs-shim/-/karma-phantomjs-shim-1.4.0.tgz#21072f436e07764a425fbbdc15175b537106e7ed" karma-webpack@^1.7.0: version "1.8.0" - resolved "https://registry.npmjs.org/karma-webpack/-/karma-webpack-1.8.0.tgz#340c7999eb3745b47becab47d0d304dac2c55257" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-1.8.0.tgz#340c7999eb3745b47becab47d0d304dac2c55257" dependencies: async "~0.9.0" loader-utils "^0.2.5" @@ -2581,7 +2604,7 @@ karma-webpack@^1.7.0: karma@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/karma/-/karma-1.3.0.tgz#b2b94e8f499fadd0069d54f9aef4a4d48ec5cc1f" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.3.0.tgz#b2b94e8f499fadd0069d54f9aef4a4d48ec5cc1f" dependencies: bluebird "^3.3.0" body-parser "^1.12.4" @@ -2612,34 +2635,34 @@ karma@^1.1.1: kew@~0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" kind-of@^3.0.2: version "3.0.4" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" dependencies: is-buffer "^1.0.2" klaw@^1.0.0: version "1.3.1" - resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" optionalDependencies: graceful-fs "^4.1.9" lazy-cache@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" levn@^0.3.0, levn@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" loader-utils@^0.2.11, loader-utils@^0.2.5: version "0.2.16" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: big.js "^3.1.3" emojis-list "^2.0.0" @@ -2648,74 +2671,74 @@ loader-utils@^0.2.11, loader-utils@^0.2.5: lodash.assign@^4.0.0: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" lodash.pickby@^4.0.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" + resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" lodash@^3.8.0: version "3.10.1" - resolved "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.2, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: - version "4.16.4" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.16.4.tgz#01ce306b9bad1319f2a5528674f88297aeb70127" + version "4.17.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" log4js@^0.6.31: version "0.6.38" - resolved "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" dependencies: readable-stream "~1.0.2" semver "~4.3.3" longest@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0, loose-envify@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.2.0.tgz#69a65aad3de542cf4ee0f4fe74e8e33c709ccb0f" + version "1.3.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" dependencies: - js-tokens "^1.0.1" + js-tokens "^2.0.0" + +lru-cache@2.2.x: + version "2.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" lru-cache@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz#1343955edaf2e37d9b9e7ee7241e27c4b9fb72be" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.1.tgz#1343955edaf2e37d9b9e7ee7241e27c4b9fb72be" dependencies: pseudomap "^1.0.1" yallist "^2.0.0" -lru-cache@2.2.x: - version "2.2.4" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" - media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" memory-fs@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" memory-fs@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" dependencies: errno "^0.1.3" readable-stream "^2.0.1" merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" methods@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" micromatch@^2.1.5, micromatch@^2.3.11: version "2.3.11" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" @@ -2731,94 +2754,94 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -"mime-db@>= 1.23.0 < 2", mime-db@~1.24.0: - version "1.24.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c" +"mime-db@>= 1.24.0 < 2", mime-db@~1.25.0: + version "1.25.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" mime-db@~1.12.0: version "1.12.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: - version "2.1.12" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729" +mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: + version "2.1.13" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" dependencies: - mime-db "~1.24.0" + mime-db "~1.25.0" mime-types@~2.0.4: version "2.0.14" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" dependencies: mime-db "~1.12.0" -mime@^1.2.11, mime@^1.3.4, mime@1.3.4: +mime@1.3.4, mime@^1.2.11, mime@^1.3.4: version "1.3.4" - resolved "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" -minimatch@^3.0.0, minimatch@^3.0.2, "minimatch@2 || 3": +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: brace-expansion "^1.0.0" +minimist@0.0.8, minimist@~0.0.1: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + minimist@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" +mkdirp@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" dependencies: minimist "0.0.8" -mkdirp@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" ms@0.7.1: version "0.7.1" - resolved "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" mute-stream@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" nan@^2.3.0: version "2.4.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" negotiator@0.4.9: version "0.4.9" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f" negotiator@0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" node-fetch@^1.0.1: version "1.6.3" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" dependencies: encoding "^0.1.11" is-stream "^1.0.1" node-libs-browser@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" dependencies: assert "^1.1.1" browserify-zlib "~0.1.4" @@ -2846,7 +2869,7 @@ node-libs-browser@^0.6.0: node-pre-gyp@^0.6.29: version "0.6.31" - resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" dependencies: mkdirp "~0.5.1" nopt "~3.0.6" @@ -2860,102 +2883,102 @@ node-pre-gyp@^0.6.29: node-uuid@~1.4.7: version "1.4.7" - resolved "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" nopt@~3.0.6: version "3.0.6" - resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" normalize-path@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" npmlog@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" + version "4.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.1.tgz#d14f503b4cd79710375553004ba96e6662fbc0b8" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" - gauge "~2.6.0" + gauge "~2.7.1" set-blocking "~2.0.0" null-check@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" oauth-sign@~0.8.1: version "0.8.2" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" object-assign@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" object-component@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" object-keys@^1.0.0, object-keys@^1.0.8: version "1.0.11" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" object.omit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz#868597333d54e60662940bb458605dd6ae12fe94" + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" dependencies: - for-own "^0.1.3" + for-own "^0.1.4" is-extendable "^0.1.1" on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" dependencies: ee-first "1.1.1" on-headers@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" once@~1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" open@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" + resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" optimist@^0.6.1, optimist@~0.6.0, optimist@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: minimist "~0.0.1" wordwrap "~0.0.2" optionator@^0.8.2: version "0.8.2" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" @@ -2966,33 +2989,33 @@ optionator@^0.8.2: options@>=0.0.5: version "0.0.6" - resolved "https://registry.npmjs.org/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" original@>=0.0.5: version "1.0.0" - resolved "https://registry.npmjs.org/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" dependencies: url-parse "1.0.x" os-browserify@~0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" os-homedir@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" os-shim@^0.1.2: version "0.1.3" - resolved "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" output-file-sync@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" dependencies: graceful-fs "^4.1.4" mkdirp "^0.5.1" @@ -3000,11 +3023,11 @@ output-file-sync@^1.1.0: pako@~0.2.0: version "0.2.9" - resolved "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" parse-glob@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" @@ -3013,53 +3036,59 @@ parse-glob@^3.0.4: parsejson@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc" dependencies: better-assert "~1.0.0" parseqs@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7" dependencies: better-assert "~1.0.0" parseuri@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350" dependencies: better-assert "~1.0.0" parseurl@~1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" path-browserify@0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" path-is-inside@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" pbkdf2-compat@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" pend@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" -phantomjs-prebuilt@^2.1.7, phantomjs-prebuilt@>=2.1: +phantomjs-prebuilt@>=2.1, phantomjs-prebuilt@^2.1.7: version "2.1.13" - resolved "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.13.tgz#66556ad9e965d893ca5a7dc9e763df7e8697f76d" + resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.13.tgz#66556ad9e965d893ca5a7dc9e763df7e8697f76d" dependencies: es6-promise "~4.0.3" extract-zip "~1.5.0" @@ -3073,49 +3102,55 @@ phantomjs-prebuilt@^2.1.7, phantomjs-prebuilt@>=2.1: pify@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" pluralize@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" power-assert-context-formatter@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.1.0.tgz#85ec15ec24309528ef1a2303d2c86e44423cd18f" + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz#edba352d3ed8a603114d667265acce60d689ccdf" dependencies: core-js "^2.0.0" - power-assert-context-traversal "^1.1.0" + power-assert-context-traversal "^1.1.1" power-assert-context-reducer-ast@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.0.tgz#7a1dca9a129967b9185a69d08eb64ecbea4dc915" + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.1.tgz#bb419c65ea88c9a4dfc34a9dbcf82e971f6f69bc" dependencies: - acorn "^3.1.0" + acorn "^4.0.0" acorn-es7-plugin "^1.0.12" core-js "^2.0.0" espurify "^1.6.0" estraverse "^4.2.0" -power-assert-context-traversal@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.1.0.tgz#d815975745a26d9280ec363625c819642edf0264" +power-assert-context-traversal@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz#88cabca0d13b6359f07d3d3e8afa699264577ed9" dependencies: core-js "^2.0.0" estraverse "^4.1.0" power-assert-formatter@^1.3.1: version "1.4.1" - resolved "https://registry.npmjs.org/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a" + resolved "https://registry.yarnpkg.com/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a" dependencies: core-js "^2.0.0" power-assert-context-formatter "^1.0.7" @@ -3126,50 +3161,50 @@ power-assert-formatter@^1.3.1: power-assert-renderer-file "^1.0.7" power-assert-renderer-assertion@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.0.tgz#e512c49bdda30f905d601d1d11f7e0094b657ac3" + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz#cbfc0e77e0086a8f96af3f1d8e67b9ee7e28ce98" dependencies: - power-assert-renderer-base "^1.1.0" - power-assert-util-string-width "^1.1.0" + power-assert-renderer-base "^1.1.1" + power-assert-util-string-width "^1.1.1" -power-assert-renderer-base@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-renderer-base/-/power-assert-renderer-base-1.1.0.tgz#de8c0132c5ff42ccaab39034487d5c30bda154a5" +power-assert-renderer-base@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb" power-assert-renderer-comparison@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.1.0.tgz#b6ae7873de60aef612a2cc3c15b91521e7e53d38" + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.1.1.tgz#d7439d97d85156be4e30a00f2fb5a72514ce3c08" dependencies: core-js "^2.0.0" diff-match-patch "^1.0.0" - power-assert-renderer-base "^1.1.0" + power-assert-renderer-base "^1.1.1" stringifier "^1.3.0" type-name "^2.0.1" power-assert-renderer-diagram@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.0.tgz#91e28458fba754cb977ed81fe06d3eee4333f14d" + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.1.tgz#7e0c82cc08a84b155e51b5ae94f59709778a65fb" dependencies: core-js "^2.0.0" - power-assert-renderer-base "^1.1.0" - power-assert-util-string-width "^1.1.0" + power-assert-renderer-base "^1.1.1" + power-assert-util-string-width "^1.1.1" stringifier "^1.3.0" power-assert-renderer-file@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-renderer-file/-/power-assert-renderer-file-1.1.0.tgz#21ba42ec26d01b8bc7501f3ef5dcf9e750964359" + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-file/-/power-assert-renderer-file-1.1.1.tgz#a37e2bbd178ccacd04e78dbb79c92fe34933c5e7" dependencies: - power-assert-renderer-base "^1.1.0" + power-assert-renderer-base "^1.1.1" -power-assert-util-string-width@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.1.0.tgz#63d2c714c0cddb8dce0e0d7cc5f9851be94ddd98" +power-assert-util-string-width@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz#be659eb7937fdd2e6c9a77268daaf64bd5b7c592" dependencies: eastasianwidth "^0.1.1" power-assert@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/power-assert/-/power-assert-1.4.1.tgz#482ee098a9877e8cfa72242c8499b93f20709c4e" + version "1.4.2" + resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.4.2.tgz#43319cd0fecd3221f276f1cc49ffa2eaeb9a1815" dependencies: define-properties "^1.1.2" empower "^1.1.0" @@ -3179,106 +3214,102 @@ power-assert@^1.4.1: pre-commit@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/pre-commit/-/pre-commit-1.1.3.tgz#6d5ed90740472072958c711a15f676aa2c231377" + resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.1.3.tgz#6d5ed90740472072958c711a15f676aa2c231377" dependencies: cross-spawn "2.0.x" which "1.2.x" prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" preserve@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" private@^0.1.6, private@~0.1.5: version "0.1.6" - resolved "https://registry.npmjs.org/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" process-nextick-args@~1.0.6: version "1.0.7" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" process@^0.11.0, process@~0.11.0: version "0.11.9" - resolved "https://registry.npmjs.org/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" progress@^1.1.8, progress@~1.1.8: version "1.1.8" - resolved "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" promise@^7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" dependencies: asap "~2.0.3" proxy-addr@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" dependencies: forwarded "~0.1.0" ipaddr.js "1.1.1" prr@~0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" pseudomap@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" punycode@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" qjobs@^1.1.4: version "1.1.5" - resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" -qs@~6.2.0: - version "6.2.1" - resolved "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" +qs@6.2.0, qs@~6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" qs@~6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -qs@6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" querystring-es3@~0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" querystringify@0.0.x: version "0.0.4" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" randomatic@^1.1.3: version "1.1.5" - resolved "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" dependencies: is-number "^2.0.2" kind-of "^3.0.2" range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" raw-body@~2.1.7: version "2.1.7" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774" dependencies: bytes "2.4.0" iconv-lite "0.4.13" @@ -3286,26 +3317,34 @@ raw-body@~2.1.7: rc@~1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" dependencies: deep-extend "~0.4.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~1.0.4" +react-addons-test-utils@^15.4.0: + version "15.4.0" + resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.4.0.tgz#bd326904916b80de6a466248ef52cdfc1799e963" + react-dom@^15.2.1: - version "15.3.2" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-15.3.2.tgz#c46b0aa5380d7b838e7a59c4a7beff2ed315531f" + version "15.4.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.0.tgz#6a97a69000966570db48c746bc4b7b0ca50d1534" + dependencies: + fbjs "^0.8.1" + loose-envify "^1.1.0" + object-assign "^4.1.0" react-frame-component@0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/react-frame-component/-/react-frame-component-0.6.2.tgz#748a7f9deac0693f824eefd28dcee2f9529ffe1a" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-0.6.2.tgz#748a7f9deac0693f824eefd28dcee2f9529ffe1a" dependencies: object-assign "^3.0.0" react@^15.2.1: - version "15.3.2" - resolved "https://registry.npmjs.org/react/-/react-15.3.2.tgz#a7bccd2fee8af126b0317e222c28d1d54528d09e" + version "15.4.0" + resolved "https://registry.yarnpkg.com/react/-/react-15.4.0.tgz#736c1c7c542e8088127106e1f450b010f86d172b" dependencies: fbjs "^0.8.4" loose-envify "^1.1.0" @@ -3313,16 +3352,16 @@ react@^15.2.1: readable-stream@^1.0.27-1, readable-stream@^1.1.13: version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@~2.1.4: +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@~2.1.4: version "2.1.5" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" dependencies: buffer-shims "^1.0.0" core-util-is "~1.0.0" @@ -3332,29 +3371,29 @@ readable-stream@^1.0.27-1, readable-stream@^1.1.13: string_decoder "~0.10.x" util-deprecate "~1.0.1" -readable-stream@~1.0.2: - version "1.0.34" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@~2.0.0, readable-stream@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" - isarray "0.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" string_decoder "~0.10.x" + util-deprecate "~1.0.1" -readable-stream@~2.0.0, readable-stream@~2.0.5: - version "2.0.6" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" +readable-stream@~1.0.2: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" + isarray "0.0.1" string_decoder "~0.10.x" - util-deprecate "~1.0.1" readdirp@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" dependencies: graceful-fs "^4.1.2" minimatch "^3.0.2" @@ -3363,30 +3402,36 @@ readdirp@^2.0.0: readline2@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" mute-stream "0.0.5" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + regenerate@^1.2.1: - version "1.3.1" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.3.1.tgz#0300203a5d2fdcf89116dce84275d011f5903f33" + version "1.3.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" regenerator-runtime@^0.9.5: - version "0.9.5" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz#403d6d40a4bdff9c330dd9392dcbb2d9a8bba1fc" + version "0.9.6" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" regex-cache@^0.4.2: version "0.4.3" - resolved "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" dependencies: is-equal-shallow "^0.1.3" is-primitive "^2.0.0" regexpu-core@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" @@ -3394,41 +3439,41 @@ regexpu-core@^2.0.0: regjsgen@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" regjsparser@^0.1.4: version "0.1.5" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" dependencies: jsesc "~0.5.0" repeat-element@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" repeat-string@^0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" repeat-string@^1.5.2: version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" repeating@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" dependencies: is-finite "^1.0.0" request-progress@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" dependencies: throttleit "^1.0.0" request@^2.75.0: - version "2.76.0" - resolved "https://registry.npmjs.org/request/-/request-2.76.0.tgz#be44505afef70360a0436955106be3945d95560e" + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" @@ -3444,16 +3489,16 @@ request@^2.75.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.1" qs "~6.3.0" stringstream "~0.0.4" tough-cookie "~2.3.0" tunnel-agent "~0.4.1" + uuid "^3.0.0" request@~2.74.0: version "2.74.0" - resolved "https://registry.npmjs.org/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab" + resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab" dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" @@ -3478,68 +3523,68 @@ request@~2.74.0: tunnel-agent "~0.4.1" require-uncached@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz#67dad3b733089e77030124678a459589faf6a7ec" + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" requires-port@1.0.x, requires-port@1.x.x: version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" resolve-from@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" resolve@^1.1.6: version "1.1.7" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" restore-cursor@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" dependencies: exit-hook "^1.0.0" onetime "^1.0.0" right-align@^0.1.1: version "0.1.3" - resolved "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.3.3, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: +rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@~2.5.1, rimraf@~2.5.4: version "2.5.4" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: glob "^7.0.5" ripemd160@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" run-async@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" dependencies: once "^1.3.0" rx-lite@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" semver@^5.3.0, semver@~5.3.0: version "5.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" semver@~4.3.3: version "4.3.6" - resolved "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" send@0.14.1: version "0.14.1" - resolved "https://registry.npmjs.org/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" + resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" dependencies: debug "~2.2.0" depd "~1.1.0" @@ -3557,7 +3602,7 @@ send@0.14.1: serve-index@^1.7.2: version "1.8.0" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" dependencies: accepts "~1.3.3" batch "0.5.3" @@ -3569,7 +3614,7 @@ serve-index@^1.7.2: serve-static@~1.11.1: version "1.11.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" dependencies: encodeurl "~1.0.1" escape-html "~1.0.3" @@ -3578,52 +3623,56 @@ serve-static@~1.11.1: set-blocking@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" set-immediate-shim@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" -setprototypeof@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz#52009b27888c4dc48f591949c0a8275834c1ca7e" +setprototypeof@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" sha.js@2.2.6: version "2.2.6" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" -shelljs@^0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" +shelljs@^0.7.5: + version "0.7.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.5.tgz#2eef7a50a21e1ccf37da00df767ec69e30ad0675" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" signal-exit@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" slash@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" slice-ansi@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" sntp@1.x.x: version "1.0.9" - resolved "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" dependencies: hoek "2.x.x" socket.io-adapter@0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f" dependencies: debug "2.2.0" socket.io-parser "2.2.2" socket.io-client@1.4.6: version "1.4.6" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz#49b0ba537efd15b8297c84016e642e1c7c752c3d" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.4.6.tgz#49b0ba537efd15b8297c84016e642e1c7c752c3d" dependencies: backo2 "1.0.2" component-bind "1.0.0" @@ -3639,7 +3688,7 @@ socket.io-client@1.4.6: socket.io-parser@2.2.2: version "2.2.2" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417" dependencies: benchmark "1.0.0" component-emitter "1.1.2" @@ -3649,7 +3698,7 @@ socket.io-parser@2.2.2: socket.io-parser@2.2.6: version "2.2.6" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99" dependencies: benchmark "1.0.0" component-emitter "1.1.2" @@ -3659,7 +3708,7 @@ socket.io-parser@2.2.6: socket.io@1.4.7: version "1.4.7" - resolved "https://registry.npmjs.org/socket.io/-/socket.io-1.4.7.tgz#92b7f7cb88c5797d4daee279fe8075dbe6d3fa1c" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.4.7.tgz#92b7f7cb88c5797d4daee279fe8075dbe6d3fa1c" dependencies: debug "2.2.0" engine.io "1.6.10" @@ -3670,7 +3719,7 @@ socket.io@1.4.7: sockjs-client@^1.0.3: version "1.1.1" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" dependencies: debug "^2.2.0" eventsource "~0.1.6" @@ -3681,51 +3730,51 @@ sockjs-client@^1.0.3: sockjs@^0.3.15: version "0.3.18" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" dependencies: faye-websocket "^0.10.0" uuid "^2.0.2" source-list-map@~0.1.0: version "0.1.6" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" source-map-support@^0.4.2: - version "0.4.5" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.5.tgz#4438df4219e1b3c7feb674614b4c67f9722db1e4" + version "0.4.6" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.6.tgz#32552aa64b458392a85eab3b0b5ee61527167aeb" dependencies: source-map "^0.5.3" source-map@^0.1.41: version "0.1.43" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: amdefine ">=0.0.4" source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1: version "0.5.6" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" source-map@~0.4.1: version "0.4.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" spawn-sync@1.0.13: version "1.0.13" - resolved "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.13.tgz#904091b9ad48a0f3afb0e84752154c01e82fd8d8" + resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.13.tgz#904091b9ad48a0f3afb0e84752154c01e82fd8d8" dependencies: concat-stream "^1.4.7" os-shim "^0.1.2" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: version "1.10.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -3740,35 +3789,31 @@ sshpk@^1.7.0: static-server@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/static-server/-/static-server-2.0.3.tgz#bd9049ec62a26acb6f5bb63493070de54b3165ee" + resolved "https://registry.yarnpkg.com/static-server/-/static-server-2.0.3.tgz#bd9049ec62a26acb6f5bb63493070de54b3165ee" dependencies: chalk "^0.5.1" commander "^2.3.0" file-size "0.0.5" mime "^1.2.11" -"statuses@>= 1.3.0 < 2", statuses@~1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz#8e55758cb20e7682c1f4fce8dcab30bf01d1e07a" +"statuses@>= 1.3.1 < 2", statuses@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" stream-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" dependencies: inherits "~2.0.1" readable-stream "^1.0.27-1" stream-cache@~0.0.1: version "0.0.2" - resolved "https://registry.npmjs.org/stream-cache/-/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" - -string_decoder@~0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + resolved "https://registry.yarnpkg.com/stream-cache/-/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" string-width@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -3776,14 +3821,18 @@ string-width@^1.0.1: string-width@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" +string_decoder@~0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + stringifier@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" + resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" dependencies: core-js "^2.0.0" traverse "^0.6.6" @@ -3791,45 +3840,45 @@ stringifier@^1.3.0: stringstream@~0.0.4: version "0.0.5" - resolved "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" strip-ansi@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" dependencies: ansi-regex "^0.2.1" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" supports-color@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^3.1.0, supports-color@^3.1.1: version "3.1.2" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: has-flag "^1.0.0" table@^3.7.8: version "3.8.3" - resolved "https://registry.npmjs.org/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" dependencies: ajv "^4.7.0" ajv-keywords "^1.0.0" @@ -3840,11 +3889,11 @@ table@^3.7.8: tapable@^0.1.8, tapable@~0.1.8: version "0.1.10" - resolved "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" tar-pack@~3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" dependencies: debug "~2.2.0" fstream "~1.0.10" @@ -3857,7 +3906,7 @@ tar-pack@~3.3.0: tar@~2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: block-stream "*" fstream "^1.0.2" @@ -3865,99 +3914,90 @@ tar@~2.2.1: text-table@~0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" throttleit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" through@^2.3.6: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" timers-browserify@^1.0.1: version "1.4.2" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" dependencies: process "~0.11.0" tmp@0.0.28: version "0.0.28" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" dependencies: os-tmpdir "~1.0.1" to-array@0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" to-fast-properties@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" tough-cookie@~2.3.0: version "2.3.2" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" dependencies: punycode "^1.4.1" traverse@^0.6.6: version "0.6.6" - resolved "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" tryit@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/tryit/-/tryit-1.0.2.tgz#c196b0073e6b1c595d93c9c830855b7acc32a453" + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" tty-browserify@0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" tunnel-agent@~0.4.1: version "0.4.3" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.3" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" dependencies: prelude-ls "~1.1.2" type-is@~1.6.13: - version "1.6.13" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz#6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08" + version "1.6.14" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" dependencies: media-typer "0.3.0" - mime-types "~2.1.11" + mime-types "~2.1.13" type-name@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" + resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" typedarray@~0.0.5: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" ua-parser-js@^0.7.9: - version "0.7.10" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.10.tgz#917559ddcce07cbc09ece7d80495e4c268f4ef9f" + version "0.7.12" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" -uglify-js@^2.7.0: +uglify-js@^2.7.0, uglify-js@~2.7.3: version "2.7.4" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" - dependencies: - async "~0.2.6" - source-map "~0.5.1" - uglify-to-browserify "~1.0.0" - yargs "~3.10.0" - -uglify-js@~2.6.0: - version "2.6.4" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" dependencies: async "~0.2.6" source-map "~0.5.1" @@ -3966,116 +4006,120 @@ uglify-js@~2.6.0: uglify-to-browserify@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" uid-number@~0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" ultron@1.0.x: version "1.0.2" - resolved "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" universal-deep-strict-equal@^1.2.1: version "1.2.2" - resolved "https://registry.npmjs.org/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" + resolved "https://registry.yarnpkg.com/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" dependencies: array-filter "^1.0.0" indexof "0.0.1" object-keys "^1.0.0" -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" -url-parse@^1.1.1: - version "1.1.6" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.1.6.tgz#ab8ff5aea1388071961255e2236147c52ca5fc48" +url-parse@1.0.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" dependencies: querystringify "0.0.x" requires-port "1.0.x" -url-parse@1.0.x: - version "1.0.5" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" +url-parse@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" dependencies: querystringify "0.0.x" requires-port "1.0.x" url@~0.10.1: version "0.10.3" - resolved "https://registry.npmjs.org/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" dependencies: punycode "1.3.2" querystring "0.2.0" user-home@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" user-home@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" dependencies: os-homedir "^1.0.0" useragent@^2.1.9: version "2.1.9" - resolved "https://registry.npmjs.org/useragent/-/useragent-2.1.9.tgz#4dba2bc4dad1875777ab15de3ff8098b475000b7" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.1.9.tgz#4dba2bc4dad1875777ab15de3ff8098b475000b7" dependencies: lru-cache "2.2.x" utf8@2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5" util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -util@~0.10.3, util@0.10.3: +util@0.10.3, util@~0.10.3: version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: inherits "2.0.1" utils-merge@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" uuid@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728" v8flags@^2.0.10: version "2.0.11" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" dependencies: user-home "^1.1.1" vary@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" verror@1.3.6: version "1.3.6" - resolved "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" dependencies: extsprintf "1.0.2" vm-browserify@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" dependencies: indexof "0.0.1" void-elements@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" watchpack@^0.2.1: version "0.2.9" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" dependencies: async "^0.9.0" chokidar "^1.0.0" @@ -4083,14 +4127,14 @@ watchpack@^0.2.1: webpack-core@~0.6.0: version "0.6.8" - resolved "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" + resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" dependencies: source-list-map "~0.1.0" source-map "~0.4.1" webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.4.0: version "1.8.4" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" dependencies: memory-fs "~0.3.0" mime "^1.3.4" @@ -4099,7 +4143,7 @@ webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.4.0: webpack-dev-server@^1.14.1: version "1.16.2" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-1.16.2.tgz#8bebc2c4ce1c45a15c72dd769d9ba08db306a793" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-1.16.2.tgz#8bebc2c4ce1c45a15c72dd769d9ba08db306a793" dependencies: compression "^1.5.2" connect-history-api-fallback "^1.3.0" @@ -4116,8 +4160,8 @@ webpack-dev-server@^1.14.1: webpack-dev-middleware "^1.4.0" webpack@^1.13.1: - version "1.13.2" - resolved "https://registry.npmjs.org/webpack/-/webpack-1.13.2.tgz#f11a96f458eb752970a86abe746c0704fabafaf3" + version "1.13.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.13.3.tgz#e79c46fe5a37c5ca70084ba0894c595cdcb42815" dependencies: acorn "^3.0.0" async "^1.3.0" @@ -4131,84 +4175,84 @@ webpack@^1.13.1: optimist "~0.6.0" supports-color "^3.1.0" tapable "~0.1.8" - uglify-js "~2.6.0" + uglify-js "~2.7.3" watchpack "^0.2.1" webpack-core "~0.6.0" websocket-driver@>=0.5.1: version "0.6.5" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" dependencies: websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" whatwg-fetch@>=0.10.0: - version "1.0.0" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz#01c2ac4df40e236aaa18480e3be74bd5c8eb798e" + version "2.0.1" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.1.tgz#078b9461bbe91cea73cbce8bb122a05f9e92b772" -which@^1.2.1, which@^1.2.8, which@~1.2.10, which@1.2.x: - version "1.2.11" - resolved "https://registry.npmjs.org/which/-/which-1.2.11.tgz#c8b2eeea6b8c1659fa7c1dd4fdaabe9533dc5e8b" +which@1.2.x, which@^1.2.1, which@^1.2.8, which@~1.2.10: + version "1.2.12" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" dependencies: isexe "^1.1.1" wide-align@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" dependencies: string-width "^1.0.1" window-size@0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" wordwrap@~0.0.2: version "0.0.3" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" wordwrap@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" ws@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/ws/-/ws-1.0.1.tgz#7d0b2a2e58cddd819039c29c9de65045e1b310e9" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.0.1.tgz#7d0b2a2e58cddd819039c29c9de65045e1b310e9" dependencies: options ">=0.0.5" ultron "1.0.x" xmlhttprequest-ssl@1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67" xtend@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" yallist@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" yargs@~3.10.0: version "3.10.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" dependencies: camelcase "^1.0.2" cliui "^2.1.0" @@ -4217,11 +4261,10 @@ yargs@~3.10.0: yauzl@2.4.1: version "2.4.1" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" dependencies: fd-slicer "~1.0.1" yeast@0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From f7d13c5f504dd15ed040a052201cd5d9ca5a2b9d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Nov 2016 13:36:23 -0600 Subject: [PATCH 229/412] release v2.2.3 --- CHANGELOG.md | 4 + bower.json | 4 +- dist/react-draggable.js | 180 +++++++++++++++++++++----------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 +- 7 files changed, 131 insertions(+), 67 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a629ceb6..dfd7ed93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 2.2.3 (Nov 21, 2016) + +- Bugfix: Fix an issue with the entire window scrolling on a drag on iDevices. Thanks @JaneCoder. See #183 + ### 2.2.2 (Sep 14, 2016) - Bugfix: Fix references to global when grabbing `SVGElement`, see [#162](https://github.com/mzabriskie/react-draggable/issues/162) diff --git a/bower.json b/bower.json index 199ec67d..622a04b2 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.2", + "version": "2.2.3", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", @@ -25,4 +25,4 @@ "webpack.config.js", "package.json" ] -} +} \ No newline at end of file diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 5976ca81..36fb0b83 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -138,7 +138,7 @@ return /******/ (function(modules) { // webpackBootstrap function Draggable(props /*: ConstructorProps*/) { _classCallCheck(this, Draggable); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Draggable).call(this, props)); + var _this = _possibleConstructorReturn(this, (Draggable.__proto__ || Object.getPrototypeOf(Draggable)).call(this, props)); _this.onDragStart = function (e, coreData) { (0, _log2.default)('Draggable: onDragStart: %j', coreData); @@ -165,8 +165,8 @@ return /******/ (function(modules) { // webpackBootstrap // Keep within bounds. if (_this.props.bounds) { // Save original x and y. - var _x = newState.x; - var _y = newState.y; + var _x = newState.x, + _y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if // we start removing slack, the element won't react to it right away until it's been @@ -178,9 +178,7 @@ return /******/ (function(modules) { // webpackBootstrap // Get bound position. This will ceil/floor the x and y within the boundaries. // $FlowBug - // Recalculate slack by noting how much was shaved by the boundPosition handler. - var _getBoundPosition = (0, _positionFns.getBoundPosition)(_this, newState.x, newState.y); var _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2); @@ -223,9 +221,9 @@ return /******/ (function(modules) { // webpackBootstrap // revert back to the old position. We expect a handler on `onDragStop`, at the least. var controlled = Boolean(_this.props.position); if (controlled) { - var _this$props$position = _this.props.position; - var _x2 = _this$props$position.x; - var _y2 = _this$props$position.y; + var _this$props$position = _this.props.position, + _x2 = _this$props$position.x, + _y2 = _this$props$position.y; newState.x = _x2; newState.y = _y2; @@ -285,7 +283,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { key: 'render', - value: function render() { + value: function render() /*: React.Element*/ { var _classNames; var style = {}, @@ -315,10 +313,10 @@ return /******/ (function(modules) { // webpackBootstrap style = (0, _domFns.createCSSTransform)(transformOpts); } - var _props = this.props; - var defaultClassName = _props.defaultClassName; - var defaultClassNameDragging = _props.defaultClassNameDragging; - var defaultClassNameDragged = _props.defaultClassNameDragged; + var _props = this.props, + defaultClassName = _props.defaultClassName, + defaultClassNameDragging = _props.defaultClassNameDragging, + defaultClassNameDragged = _props.defaultClassNameDragged; // Mark with class while dragging @@ -669,21 +667,21 @@ return /******/ (function(modules) { // webpackBootstrap } function createCSSTransform(_ref) /*: Object*/ { - var x = _ref.x; - var y = _ref.y; + var x = _ref.x, + y = _ref.y; // Replace unitless items with px return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix2.default), 'translate(' + x + 'px,' + y + 'px)'); } function createSVGTransform(_ref3) /*: string*/ { - var x = _ref3.x; - var y = _ref3.y; + var x = _ref3.x, + y = _ref3.y; return 'translate(' + x + ',' + y + ')'; } - function getTouch(e /*: MouseEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { + function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) { return identifier === t.identifier; }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) { @@ -691,7 +689,7 @@ return /******/ (function(modules) { // webpackBootstrap }); } - function getTouchIdentifier(e /*: MouseEvent*/) /*: ?number*/ { + function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/ { if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; } @@ -702,6 +700,7 @@ return /******/ (function(modules) { // webpackBootstrap var userSelectPrefix = (0, _getPrefix.getPrefix)('user-select'); var userSelect = (0, _getPrefix.browserPrefixToStyle)('user-select', userSelectPrefix); var userSelectStyle = ';' + userSelect + ': none;'; + var userSelectReplaceRegExp = new RegExp(';?' + userSelect + ': none;'); // leading ; not present on IE // Note we're passing `document` b/c we could be iframed function addUserSelectStyles(body /*: HTMLElement*/) { @@ -711,11 +710,11 @@ return /******/ (function(modules) { // webpackBootstrap function removeUserSelectStyles(body /*: HTMLElement*/) { var style = body.getAttribute('style') || ''; - body.setAttribute('style', style.replace(userSelectStyle, '')); + body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); } function styleHacks() /*: Object*/ { - var childStyle /*: Object*/ = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var childStyle /*: Object*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // Workaround IE pointer events; see #51 // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 @@ -740,7 +739,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.dontSetMe = dontSetMe; // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc - function findInArray(array /*: Array*/, callback /*: Function*/) /*: any*/ { + function findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/ { for (var i = 0, length = array.length; i < length; i++) { if (callback.apply(callback, [array[i], i, array])) return array[i]; } @@ -776,10 +775,9 @@ return /******/ (function(modules) { // webpackBootstrap exports.getPrefix = getPrefix; exports.browserPrefixToKey = browserPrefixToKey; exports.browserPrefixToStyle = browserPrefixToStyle; - var prefixes = ['Moz', 'Webkit', 'O', 'ms']; function getPrefix() /*: string*/ { - var prop /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? 'transform' : arguments[0]; + var prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform'; // Checking specifically for 'window.document' is for pseudo-browser server-side // environments that define 'window' as the global context. @@ -914,7 +912,7 @@ return /******/ (function(modules) { // webpackBootstrap } // Get {x, y} positions from event. - function getControlPosition(e /*: MouseEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { + function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null; if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch var node = _reactDom2.default.findDOMNode(draggableCore); @@ -925,8 +923,7 @@ return /******/ (function(modules) { // webpackBootstrap // Create an data object exposed by 's events function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/ { - // State changes are often (but not always!) async. We want the latest value. - var state = draggable._pendingState || draggable.state; + var state = draggable.state; var isStart = !(0, _shims.isNum)(state.lastX); if (isStart) { @@ -1047,7 +1044,7 @@ return /******/ (function(modules) { // webpackBootstrap _inherits(DraggableCore, _React$Component); function DraggableCore() { - var _Object$getPrototypeO; + var _ref; var _temp, _this, _ret; @@ -1057,7 +1054,7 @@ return /******/ (function(modules) { // webpackBootstrap args[_key] = arguments[_key]; } - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(DraggableCore)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.state = { + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = DraggableCore.__proto__ || Object.getPrototypeOf(DraggableCore)).call.apply(_ref, [this].concat(args))), _this), _this.state = { dragging: false, // Used while dragging to determine deltas. lastX: NaN, lastY: NaN, @@ -1088,8 +1085,8 @@ return /******/ (function(modules) { // webpackBootstrap // Get the current drag point from the event. This is used as the offset. var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _this); if (position == null) return; // not possible but satisfies flow - var x = position.x; - var y = position.y; + var x = position.x, + y = position.y; // Create an event object with all the data parents need to make a decision here. @@ -1123,11 +1120,14 @@ return /******/ (function(modules) { // webpackBootstrap (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop); }, _this.handleDrag = function (e) { + // Prevent scrolling on mobile devices, like ipad/iphone. + if (e.type === 'touchmove') e.preventDefault(); + // Get the current drag point from the event. This is used as the offset. var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); if (position == null) return; - var x = position.x; - var y = position.y; + var x = position.x, + y = position.y; // Snap to grid if prop has been provided @@ -1156,10 +1156,11 @@ return /******/ (function(modules) { // webpackBootstrap var shouldUpdate = _this.props.onDrag(e, coreEvent); if (shouldUpdate === false) { try { + // $FlowIgnore _this.handleDragStop(new MouseEvent('mouseup')); } catch (err) { // Old browsers - var event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseEvent*/); + var event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/); // I see why this insanity was deprecated // $FlowIgnore event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); @@ -1177,17 +1178,17 @@ return /******/ (function(modules) { // webpackBootstrap var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); if (position == null) return; - var x = position.x; - var y = position.y; + var x = position.x, + y = position.y; var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - var _ReactDOM$findDOMNode = _reactDom2.default.findDOMNode(_this); - - var ownerDocument = _ReactDOM$findDOMNode.ownerDocument; + var _ReactDOM$findDOMNode = _reactDom2.default.findDOMNode(_this), + ownerDocument = _ReactDOM$findDOMNode.ownerDocument; // Remove user-select hack + if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument.body); (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); @@ -1232,10 +1233,8 @@ return /******/ (function(modules) { // webpackBootstrap value: function componentWillUnmount() { // Remove any leftover event handlers. Remove both touch and mouse handlers in case // some browser quirk caused a touch event to fire during a mouse move, or vice versa. - - var _ReactDOM$findDOMNode2 = _reactDom2.default.findDOMNode(this); - - var ownerDocument = _ReactDOM$findDOMNode2.ownerDocument; + var _ReactDOM$findDOMNode2 = _reactDom2.default.findDOMNode(this), + ownerDocument = _ReactDOM$findDOMNode2.ownerDocument; (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag); (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag); @@ -1248,7 +1247,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'render', - value: function render() { + value: function render() /*: React.Element*/ { // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return _react2.default.cloneElement(_react2.default.Children.only(this.props.children), { @@ -1402,7 +1401,6 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports) { // shim for using process in browser - var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it @@ -1413,22 +1411,84 @@ return /******/ (function(modules) { // webpackBootstrap var cachedSetTimeout; var cachedClearTimeout; + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } (function () { - try { - cachedSetTimeout = setTimeout; - } catch (e) { - cachedSetTimeout = function () { - throw new Error('setTimeout is not defined'); + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; } - } - try { - cachedClearTimeout = clearTimeout; - } catch (e) { - cachedClearTimeout = function () { - throw new Error('clearTimeout is not defined'); + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; } - } } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } var queue = []; var draining = false; var currentQueue; @@ -1453,7 +1513,7 @@ return /******/ (function(modules) { // webpackBootstrap if (draining) { return; } - var timeout = cachedSetTimeout(cleanUpNextTick); + var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; @@ -1470,7 +1530,7 @@ return /******/ (function(modules) { // webpackBootstrap } currentQueue = null; draining = false; - cachedClearTimeout(timeout); + runClearTimeout(timeout); } process.nextTick = function (fun) { @@ -1482,7 +1542,7 @@ return /******/ (function(modules) { // webpackBootstrap } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { - cachedSetTimeout(drainQueue, 0); + runTimeout(drainQueue); } }; diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 2c814322..61bbb781 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap e7af926c2781db7b585d",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":[],"mappings":"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","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap e7af926c2781db7b585d\n **/","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/Draggable.es6\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectStyle, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/domFns.es6\n **/","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/shims.es6\n **/","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/getPrefix.es6\n **/","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n // State changes are often (but not always!) async. We want the latest value.\n const state = draggable._pendingState || draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/positionFns.es6\n **/","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/DraggableCore.es6\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = cachedSetTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n cachedClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n cachedSetTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/process/browser.js\n ** module id = 10\n ** module chunks = 0\n **/","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils/log.es6\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 0b7d68f085344fd26937",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":["module","exports","require","default","DraggableCore","Draggable","props","onDragStart","e","coreData","shouldStart","onStart","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","slackX","slackY","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","defaultPosition","isElementSVG","console","warn","SVGElement","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","className","children","cloneElement","Children","only","transform","Component","displayName","propTypes","axis","oneOf","oneOfType","shape","left","number","right","top","bottom","string","defaultProps","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","matchesSelectorFunc","el","selector","method","call","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","identifier","targetTouches","t","changedTouches","userSelectPrefix","userSelect","userSelectStyle","userSelectReplaceRegExp","RegExp","getAttribute","setAttribute","replace","childStyle","touchAction","findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","num","isNaN","a","parseInt","propName","componentName","Error","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","window","document","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","cloneBounds","ownerWindow","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","grid","pendingX","pendingY","round","touchIdentifier","draggableCore","touchObj","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","domNode","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","type","preventDefault","Array","isArray","MouseEvent","err","createEvent","initMouseEvent","onMouseUp","onTouchStart","onTouchEnd","bool","process","browser","nodeType","arrayOf","log"],"mappings":"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iB;AA8GjBY;AA9GiB,E;AAJAhD,c,CAqHZ8D,Y,GAAe;AACpBmJ,kBAAe,KADK,EACE;AACtBO,WAAQ,IAFY;AAGpBJ,aAAU,KAHU;AAIpBM,yBAAsB,IAJF;AAKpB5G,iBAAc,IALM;AAMpByG,WAAQ,IANY;AAOpB1B,SAAM,IAPc;AAQpB7I,cAAW,IARS;AASpBzC,YAAS,mBAAU,CAAE,CATD;AAUpBI,WAAQ,kBAAU,CAAE,CAVA;AAWpBc,WAAQ,kBAAU,CAAE,CAXA;AAYpBuL,gBAAa,uBAAU,CAAE;AAZL,E;mBArHHhN,a;;;;;;;AC1CrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;;;;;;mBCjLd6O,G;;AADxB;AACe,UAASA,GAAT,GAA2B;AAAA;;AACxC,OAAI,WAAJ,EAAiC,qBAAQA,GAAR;AAClC,E","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0b7d68f085344fd26937","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.es6","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 2\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 3\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\nconst userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectReplaceRegExp, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.es6","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.es6","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.es6","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.es6","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.es6","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 10\n// module chunks = 0","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.es6"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index e3a8000f..77b280a7 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1).default,module.exports.DraggableCore=__webpack_require__(9).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultClassName:_react.PropTypes.string,defaultClassNameDragging:_react.PropTypes.string,defaultClassNameDragged:_react.PropTypes.string,defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i1)for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultClassName:_react.PropTypes.string,defaultClassNameDragging:_react.PropTypes.string,defaultClassNameDragged:_react.PropTypes.string,defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i Date: Mon, 21 Nov 2016 20:38:22 +0100 Subject: [PATCH 230/412] adds undocumented bounds option to docs (#199) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e7a41b22..feba41e4 100644 --- a/README.md +++ b/README.md @@ -157,6 +157,7 @@ axis: string, // Specifies movement boundaries. Accepted values: // - `parent` restricts movement within the node's offsetParent // (nearest node with position relative or absolute), or +// - a selector, restricts movement within the targeted node // - An object with `left, top, right, and bottom` properties. // These indicate how far in each direction the draggable // can be moved. From 9495f45195c7ce31d612b707b50050f4c16cd0d2 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Nov 2016 13:39:41 -0600 Subject: [PATCH 231/412] chore(example): Update react --- example/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/index.html b/example/index.html index 5b2e4529..044c1532 100644 --- a/example/index.html +++ b/example/index.html @@ -53,8 +53,8 @@
- - + + - + From ed32ee784b42a56ad46f0982fcb02642f2493e69 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 6 Mar 2017 07:50:04 -0600 Subject: [PATCH 238/412] docs(example): remove redundant Y axis example --- example/example.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/example/example.js b/example/example.js index e8af0cc6..229897aa 100644 --- a/example/example.js +++ b/example/example.js @@ -71,10 +71,10 @@ var App = React.createClass({
I can be dragged anywhere
-
I can only be dragged horizonally
+
I can only be dragged horizonally (x axis)
-
I can only be dragged vertically
+
I can only be dragged vertically (y axis)
false}>
I don't want to be dragged
@@ -97,9 +97,6 @@ var App = React.createClass({
Dragging here works
- -
I can only be dragged by the Y axis
-
I snap to a 25 x 25 grid
From 3c081c98c4498299a504638f9899e89c726958b4 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 6 Mar 2017 08:14:49 -0600 Subject: [PATCH 239/412] refactor(lint): Extend eslint:recommended --- .eslintrc | 5 ++++- lib/Draggable.es6 | 2 +- lib/DraggableCore.es6 | 2 -- specs/.eslintrc | 5 +++++ specs/draggable.spec.jsx | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 specs/.eslintrc diff --git a/.eslintrc b/.eslintrc index bf36c31b..a35beb2d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,5 +1,6 @@ { "parser": "babel-eslint", + "extends": "eslint:recommended", "plugins": [ "react" ], @@ -24,6 +25,8 @@ globals: { // For Flow "ReactElement", - "ReactClass" + "ReactClass", + "$Shape", + "MouseTouchEvent", } } diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index e4e05324..1ec2af85 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -179,7 +179,7 @@ export default class Draggable extends React.Component { // Can only determine if SVG after mounting isElementSVG: false }; - }; + } componentWillMount() { if (this.props.position && !(this.props.onDrag || this.props.onStop)) { diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 3e0c9e5a..3997ad1b 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -262,8 +262,6 @@ export default class DraggableCore extends React.Component { let {x, y} = position; // Snap to grid if prop has been provided - if (x !== x) debugger; - if (Array.isArray(this.props.grid)) { let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY; [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY); diff --git a/specs/.eslintrc b/specs/.eslintrc new file mode 100644 index 00000000..87a5693f --- /dev/null +++ b/specs/.eslintrc @@ -0,0 +1,5 @@ +{ + env: { + jasmine: true + } +} diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index e6c65ac2..fb89d6c2 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -404,7 +404,7 @@ describe('react-draggable', function () { const userSelectStyleStr = `${userSelectStyle}: none;`; const dragElement = ( - +
); From 95b40d1f865c02ff9a9759fab0691ed8881ff5a8 Mon Sep 17 00:00:00 2001 From: Dmitry Vashchilov Date: Thu, 27 Apr 2017 20:51:02 +0700 Subject: [PATCH 240/412] Use PropTypes from "prop-types" package instead of React one (#241) --- interfaces/dom.js | 7 ++++++- lib/Draggable.es6 | 3 ++- lib/DraggableCore.es6 | 3 ++- package.json | 1 + yarn.lock | 22 ++++++++++++++++++++++ 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/interfaces/dom.js b/interfaces/dom.js index 46d2c1ac..01663d69 100644 --- a/interfaces/dom.js +++ b/interfaces/dom.js @@ -6,6 +6,11 @@ declare class SVGElement extends HTMLElement { declare class TouchEvent2 extends TouchEvent { changedTouches: TouchList; targetTouches: TouchList; -}; +} declare type MouseTouchEvent = MouseEvent & TouchEvent2; + +// Missing in Flow +declare module 'prop-types' { + declare function exports(args: any): any; +} \ No newline at end of file diff --git a/lib/Draggable.es6 b/lib/Draggable.es6 index 1ec2af85..05eba490 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.es6 @@ -1,5 +1,6 @@ // @flow -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; // $FlowIgnore import classNames from 'classnames'; diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.es6 index 3997ad1b..cc87b719 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.es6 @@ -1,5 +1,6 @@ // @flow -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; import {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, removeUserSelectStyles, styleHacks} from './utils/domFns'; diff --git a/package.json b/package.json index fd27cc2f..881d0a6d 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "phantomjs-prebuilt": ">=2.1", "power-assert": "^1.4.1", "pre-commit": "^1.1.3", + "prop-types": "^15.5.8", "react": "^15.2.1", "react-addons-test-utils": "^15.4.0", "react-dom": "^15.2.1", diff --git a/yarn.lock b/yarn.lock index 39f2bff1..6fea5852 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1857,6 +1857,18 @@ fbjs@^0.8.1, fbjs@^0.8.4: promise "^7.1.1" ua-parser-js "^0.7.9" +fbjs@^0.8.9: + version "0.8.12" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.9" + fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" @@ -3249,6 +3261,12 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +prop-types@^15.5.8: + version "15.5.8" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" + dependencies: + fbjs "^0.8.9" + proxy-addr@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" @@ -3629,6 +3647,10 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + setprototypeof@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" From c97bea69f1f3b7955059742096c99c120136e583 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 27 Apr 2017 09:22:07 -0500 Subject: [PATCH 241/412] release v2.2.4 --- bower.json | 2 +- dist/react-draggable.js | 970 ++++++++++++++++++++++++++++++-- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 3 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 +- 6 files changed, 916 insertions(+), 67 deletions(-) diff --git a/bower.json b/bower.json index 622a04b2..984442f0 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.3", + "version": "2.2.4", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 36fb0b83..867dfce3 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -7,7 +7,7 @@ exports["ReactDraggable"] = factory(require("react"), require("react-dom")); else root["ReactDraggable"] = factory(root["React"], root["ReactDOM"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) { +})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_11__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -57,7 +57,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; module.exports = __webpack_require__(1).default; - module.exports.DraggableCore = __webpack_require__(9).default; + module.exports.DraggableCore = __webpack_require__(17).default; /***/ }, /* 1 */ @@ -79,25 +79,29 @@ return /******/ (function(modules) { // webpackBootstrap var _react2 = _interopRequireDefault(_react); - var _reactDom = __webpack_require__(3); + var _propTypes = __webpack_require__(3); + + var _propTypes2 = _interopRequireDefault(_propTypes); + + var _reactDom = __webpack_require__(11); var _reactDom2 = _interopRequireDefault(_reactDom); - var _classnames = __webpack_require__(4); + var _classnames = __webpack_require__(12); var _classnames2 = _interopRequireDefault(_classnames); - var _domFns = __webpack_require__(5); + var _domFns = __webpack_require__(13); - var _positionFns = __webpack_require__(8); + var _positionFns = __webpack_require__(16); - var _shims = __webpack_require__(6); + var _shims = __webpack_require__(14); - var _DraggableCore = __webpack_require__(9); + var _DraggableCore = __webpack_require__(17); var _DraggableCore2 = _interopRequireDefault(_DraggableCore); - var _log = __webpack_require__(11); + var _log = __webpack_require__(19); var _log2 = _interopRequireDefault(_log); @@ -355,7 +359,7 @@ return /******/ (function(modules) { // webpackBootstrap * * Defaults to 'both'. */ - axis: _react.PropTypes.oneOf(['both', 'x', 'y', 'none']), + axis: _propTypes2.default.oneOf(['both', 'x', 'y', 'none']), /** * `bounds` determines the range of movement available to the element. @@ -383,16 +387,16 @@ return /******/ (function(modules) { // webpackBootstrap * }); * ``` */ - bounds: _react.PropTypes.oneOfType([_react.PropTypes.shape({ - left: _react.PropTypes.number, - right: _react.PropTypes.number, - top: _react.PropTypes.number, - bottom: _react.PropTypes.number - }), _react.PropTypes.string, _react.PropTypes.oneOf([false])]), + bounds: _propTypes2.default.oneOfType([_propTypes2.default.shape({ + left: _propTypes2.default.number, + right: _propTypes2.default.number, + top: _propTypes2.default.number, + bottom: _propTypes2.default.number + }), _propTypes2.default.string, _propTypes2.default.oneOf([false])]), - defaultClassName: _react.PropTypes.string, - defaultClassNameDragging: _react.PropTypes.string, - defaultClassNameDragged: _react.PropTypes.string, + defaultClassName: _propTypes2.default.string, + defaultClassNameDragging: _propTypes2.default.string, + defaultClassNameDragged: _propTypes2.default.string, /** * `defaultPosition` specifies the x and y that the dragged item should start at @@ -411,9 +415,9 @@ return /******/ (function(modules) { // webpackBootstrap * }); * ``` */ - defaultPosition: _react.PropTypes.shape({ - x: _react.PropTypes.number, - y: _react.PropTypes.number + defaultPosition: _propTypes2.default.shape({ + x: _propTypes2.default.number, + y: _propTypes2.default.number }), /** @@ -436,9 +440,9 @@ return /******/ (function(modules) { // webpackBootstrap * }); * ``` */ - position: _react.PropTypes.shape({ - x: _react.PropTypes.number, - y: _react.PropTypes.number + position: _propTypes2.default.shape({ + x: _propTypes2.default.number, + y: _propTypes2.default.number }), /** @@ -467,12 +471,853 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 3 */ -/***/ function(module, exports) { +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && + Symbol.for && + Symbol.for('react.element')) || + 0xeac7; + + var isValidElement = function(object) { + return typeof object === 'object' && + object !== null && + object.$$typeof === REACT_ELEMENT_TYPE; + }; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = __webpack_require__(4)(isValidElement, throwOnDirectAccess); + } else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = __webpack_require__(10)(); + } - module.exports = __WEBPACK_EXTERNAL_MODULE_3__; /***/ }, /* 4 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + var emptyFunction = __webpack_require__(5); + var invariant = __webpack_require__(6); + var warning = __webpack_require__(7); + + var ReactPropTypesSecret = __webpack_require__(8); + var checkPropTypes = __webpack_require__(9); + + module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + } else if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + warning( + false, + 'You are manually calling a React.PropTypes validation ' + + 'function for the `%s` prop on `%s`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', + propFullName, + componentName + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + ({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + ({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + "use strict"; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * + */ + + function makeEmptyFunction(arg) { + return function () { + return arg; + }; + } + + /** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ + var emptyFunction = function emptyFunction() {}; + + emptyFunction.thatReturns = makeEmptyFunction; + emptyFunction.thatReturnsFalse = makeEmptyFunction(false); + emptyFunction.thatReturnsTrue = makeEmptyFunction(true); + emptyFunction.thatReturnsNull = makeEmptyFunction(null); + emptyFunction.thatReturnsThis = function () { + return this; + }; + emptyFunction.thatReturnsArgument = function (arg) { + return arg; + }; + + module.exports = emptyFunction; + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + /** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + + var validateFormat = function validateFormat(format) {}; + + if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + validateFormat = function validateFormat(format) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + }; + } + + function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } + } + + module.exports = invariant; + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + var emptyFunction = __webpack_require__(5); + + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var warning = emptyFunction; + + if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + (function () { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; + })(); + } + + module.exports = warning; + +/***/ }, +/* 8 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + + module.exports = ReactPropTypesSecret; + + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + var invariant = __webpack_require__(6); + var warning = __webpack_require__(7); + var ReactPropTypesSecret = __webpack_require__(8); + var loggedTypeFailures = {}; + } + + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (typeSpecs.hasOwnProperty(typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); + } + } + } + } + } + + module.exports = checkPropTypes; + + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + var emptyFunction = __webpack_require__(5); + var invariant = __webpack_require__(6); + + module.exports = function() { + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + function shim() { + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim + }; + + ReactPropTypes.checkPropTypes = emptyFunction; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + +/***/ }, +/* 11 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_11__; + +/***/ }, +/* 12 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -526,7 +1371,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 5 */ +/* 13 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -554,9 +1399,9 @@ return /******/ (function(modules) { // webpackBootstrap exports.removeUserSelectStyles = removeUserSelectStyles; exports.styleHacks = styleHacks; - var _shims = __webpack_require__(6); + var _shims = __webpack_require__(14); - var _getPrefix = __webpack_require__(7); + var _getPrefix = __webpack_require__(15); var _getPrefix2 = _interopRequireDefault(_getPrefix); @@ -705,6 +1550,7 @@ return /******/ (function(modules) { // webpackBootstrap // Note we're passing `document` b/c we could be iframed function addUserSelectStyles(body /*: HTMLElement*/) { var style = body.getAttribute('style') || ''; + if (userSelectReplaceRegExp.test(style)) return; // don't add twice body.setAttribute('style', style + userSelectStyle); } @@ -724,7 +1570,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 6 */ +/* 14 */ /***/ function(module, exports) { 'use strict'; @@ -764,7 +1610,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 7 */ +/* 15 */ /***/ function(module, exports) { 'use strict'; @@ -825,7 +1671,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = getPrefix(); /***/ }, -/* 8 */ +/* 16 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -841,13 +1687,13 @@ return /******/ (function(modules) { // webpackBootstrap exports.createCoreData = createCoreData; exports.createDraggableData = createDraggableData; - var _shims = __webpack_require__(6); + var _shims = __webpack_require__(14); - var _reactDom = __webpack_require__(3); + var _reactDom = __webpack_require__(11); var _reactDom2 = _interopRequireDefault(_reactDom); - var _domFns = __webpack_require__(5); + var _domFns = __webpack_require__(13); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -879,10 +1725,10 @@ return /******/ (function(modules) { // webpackBootstrap var boundNodeStyle = ownerWindow.getComputedStyle(boundNode); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. bounds = { - left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.borderLeftWidth) + (0, _shims.int)(nodeStyle.marginLeft), - top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.borderTopWidth) + (0, _shims.int)(nodeStyle.marginTop), - right: (0, _domFns.innerWidth)(boundNode) - (0, _domFns.outerWidth)(node) - node.offsetLeft, - bottom: (0, _domFns.innerHeight)(boundNode) - (0, _domFns.outerHeight)(node) - node.offsetTop + left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft), + top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop), + right: (0, _domFns.innerWidth)(boundNode) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight), + bottom: (0, _domFns.innerHeight)(boundNode) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom) }; } @@ -969,7 +1815,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 9 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -986,17 +1832,21 @@ return /******/ (function(modules) { // webpackBootstrap var _react2 = _interopRequireDefault(_react); - var _reactDom = __webpack_require__(3); + var _propTypes = __webpack_require__(3); + + var _propTypes2 = _interopRequireDefault(_propTypes); + + var _reactDom = __webpack_require__(11); var _reactDom2 = _interopRequireDefault(_reactDom); - var _domFns = __webpack_require__(5); + var _domFns = __webpack_require__(13); - var _positionFns = __webpack_require__(8); + var _positionFns = __webpack_require__(16); - var _shims = __webpack_require__(6); + var _shims = __webpack_require__(14); - var _log = __webpack_require__(11); + var _log = __webpack_require__(19); var _log2 = _interopRequireDefault(_log); @@ -1131,8 +1981,6 @@ return /******/ (function(modules) { // webpackBootstrap // Snap to grid if prop has been provided - if (x !== x) debugger; - if (Array.isArray(_this.props.grid)) { var deltaX = x - _this.state.lastX, deltaY = y - _this.state.lastY; @@ -1274,20 +2122,20 @@ return /******/ (function(modules) { // webpackBootstrap * * Defaults to `false`. */ - allowAnyClick: _react.PropTypes.bool, + allowAnyClick: _propTypes2.default.bool, /** * `disabled`, if true, stops the from dragging. All handlers, * with the exception of `onMouseDown`, will not fire. */ - disabled: _react.PropTypes.bool, + disabled: _propTypes2.default.bool, /** * By default, we add 'user-select:none' attributes to the document body * to prevent ugly text selection during drag. If this is causing problems * for your app, set this to `false`. */ - enableUserSelectHack: _react.PropTypes.bool, + enableUserSelectHack: _propTypes2.default.bool, /** * `offsetParent`, if set, uses the passed DOM node to compute drag offsets @@ -1302,7 +2150,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * `grid` specifies the x and y that dragging should snap to. */ - grid: _react.PropTypes.arrayOf(_react.PropTypes.number), + grid: _propTypes2.default.arrayOf(_propTypes2.default.number), /** * `handle` specifies a selector to be used as the handle that initiates drag. @@ -1324,7 +2172,7 @@ return /******/ (function(modules) { // webpackBootstrap * }); * ``` */ - handle: _react.PropTypes.string, + handle: _propTypes2.default.string, /** * `cancel` specifies a selector to be used to prevent drag initialization. @@ -1346,31 +2194,31 @@ return /******/ (function(modules) { // webpackBootstrap * }); * ``` */ - cancel: _react.PropTypes.string, + cancel: _propTypes2.default.string, /** * Called when dragging starts. * If this function returns the boolean false, dragging will be canceled. */ - onStart: _react.PropTypes.func, + onStart: _propTypes2.default.func, /** * Called while dragging. * If this function returns the boolean false, dragging will be canceled. */ - onDrag: _react.PropTypes.func, + onDrag: _propTypes2.default.func, /** * Called when dragging stops. * If this function returns the boolean false, the drag will remain active. */ - onStop: _react.PropTypes.func, + onStop: _propTypes2.default.func, /** * A workaround option which can be passed if onMouseDown needs to be accessed, * since it'll always be blocked (as there is internal use of onMouseDown) */ - onMouseDown: _react.PropTypes.func, + onMouseDown: _propTypes2.default.func, /** * These properties should be defined on the child, not here. @@ -1394,10 +2242,10 @@ return /******/ (function(modules) { // webpackBootstrap onMouseDown: function onMouseDown() {} }; exports.default = DraggableCore; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(18))) /***/ }, -/* 10 */ +/* 18 */ /***/ function(module, exports) { // shim for using process in browser @@ -1583,7 +2431,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 11 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { "use strict"; diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 61bbb781..f87974ed 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 0b7d68f085344fd26937",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":["module","exports","require","default","DraggableCore","Draggable","props","onDragStart","e","coreData","shouldStart","onStart","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","slackX","slackY","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","defaultPosition","isElementSVG","console","warn","SVGElement","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","className","children","cloneElement","Children","only","transform","Component","displayName","propTypes","axis","oneOf","oneOfType","shape","left","number","right","top","bottom","string","defaultProps","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","matchesSelectorFunc","el","selector","method","call","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","identifier","targetTouches","t","changedTouches","userSelectPrefix","userSelect","userSelectStyle","userSelectReplaceRegExp","RegExp","getAttribute","setAttribute","replace","childStyle","touchAction","findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","num","isNaN","a","parseInt","propName","componentName","Error","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","window","document","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","cloneBounds","ownerWindow","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","Math","min","max","grid","pendingX","pendingY","round","touchIdentifier","draggableCore","touchObj","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","domNode","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","type","preventDefault","Array","isArray","MouseEvent","err","createEvent","initMouseEvent","onMouseUp","onTouchStart","onTouchEnd","bool","process","browser","nodeType","arrayOf","log"],"mappings":"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iB;AA8GjBY;AA9GiB,E;AAJAhD,c,CAqHZ8D,Y,GAAe;AACpBmJ,kBAAe,KADK,EACE;AACtBO,WAAQ,IAFY;AAGpBJ,aAAU,KAHU;AAIpBM,yBAAsB,IAJF;AAKpB5G,iBAAc,IALM;AAMpByG,WAAQ,IANY;AAOpB1B,SAAM,IAPc;AAQpB7I,cAAW,IARS;AASpBzC,YAAS,mBAAU,CAAE,CATD;AAUpBI,WAAQ,kBAAU,CAAE,CAVA;AAWpBc,WAAQ,kBAAU,CAAE,CAXA;AAYpBuL,gBAAa,uBAAU,CAAE;AAZL,E;mBArHHhN,a;;;;;;;AC1CrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;;;;;;mBCjLd6O,G;;AADxB;AACe,UAASA,GAAT,GAA2B;AAAA;;AACxC,OAAI,WAAJ,EAAiC,qBAAQA,GAAR;AAClC,E","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0b7d68f085344fd26937","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n };\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.es6","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 2\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 3\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\nconst userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectReplaceRegExp, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.es6","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.es6","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.es6","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) +\n int(nodeStyle.borderLeftWidth) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) +\n int(nodeStyle.borderTopWidth) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft,\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.es6","// @flow\nimport React, {PropTypes} from 'react';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (x !== x) debugger;\n\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.es6","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 10\n// module chunks = 0","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.es6"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 15089f105fec648c1f75",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././~/prop-types/index.js",".././~/prop-types/factoryWithTypeCheckers.js",".././~/fbjs/lib/emptyFunction.js",".././~/fbjs/lib/invariant.js",".././~/fbjs/lib/warning.js",".././~/prop-types/lib/ReactPropTypesSecret.js",".././~/prop-types/checkPropTypes.js",".././~/prop-types/factoryWithThrowingShims.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":["module","exports","require","default","DraggableCore","Draggable","props","onDragStart","e","coreData","shouldStart","onStart","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","slackX","slackY","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","defaultPosition","isElementSVG","console","warn","SVGElement","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","className","children","cloneElement","Children","only","transform","Component","displayName","propTypes","axis","oneOf","oneOfType","shape","left","number","right","top","bottom","string","defaultProps","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","matchesSelectorFunc","el","selector","method","call","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","identifier","targetTouches","t","changedTouches","userSelectPrefix","userSelect","userSelectStyle","userSelectReplaceRegExp","RegExp","getAttribute","test","setAttribute","replace","childStyle","touchAction","findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","num","isNaN","a","parseInt","propName","componentName","Error","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","window","document","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","cloneBounds","ownerWindow","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","marginRight","marginBottom","Math","min","max","grid","pendingX","pendingY","round","touchIdentifier","draggableCore","touchObj","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","domNode","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","type","preventDefault","Array","isArray","MouseEvent","err","createEvent","initMouseEvent","onMouseUp","onTouchStart","onTouchEnd","bool","process","browser","nodeType","arrayOf","log"],"mappings":"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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,QAAQ;AACrB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV,8BAA6B;AAC7B,SAAQ;AACR;AACA;AACA;AACA;AACA,gCAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,6BAA4B;AAC5B,QAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC7dA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD;AACrD,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA,4B;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAe;AACf;;AAEA;AACA,+FAA8F,eAAe;AAC7G;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA,0B;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;;;;;;mBCjLdgP,G;;AADxB;AACe,UAASA,GAAT,GAA2B;AAAA;;AACxC,OAAI,WAAJ,EAAiC,qBAAQA,GAAR;AAClC,E","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_11__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 15089f105fec648c1f75","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.es6","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 3\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 4\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyFunction.js\n// module id = 5\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/invariant.js\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/warning.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 8\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 9\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nmodule.exports = function() {\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n function shim() {\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 10\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_11__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 11\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 12\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\nconst userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n if (userSelectReplaceRegExp.test(style)) return; // don't add twice\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectReplaceRegExp, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.es6","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.es6","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.es6","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.es6","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.es6","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 18\n// module chunks = 0","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.es6"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 77b280a7..8ea2f74c 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,3 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1).default,module.exports.DraggableCore=__webpack_require__(9).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_react.PropTypes.oneOf(["both","x","y","none"]),bounds:_react.PropTypes.oneOfType([_react.PropTypes.shape({left:_react.PropTypes.number,right:_react.PropTypes.number,top:_react.PropTypes.number,bottom:_react.PropTypes.number}),_react.PropTypes.string,_react.PropTypes.oneOf([!1])]),defaultClassName:_react.PropTypes.string,defaultClassNameDragging:_react.PropTypes.string,defaultClassNameDragged:_react.PropTypes.string,defaultPosition:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),position:_react.PropTypes.shape({x:_react.PropTypes.number,y:_react.PropTypes.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,isValidElement=function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},throwOnDirectAccess=!0;module.exports=__webpack_require__(4)(isValidElement,throwOnDirectAccess)}else module.exports=__webpack_require__(10)()},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(5),invariant=__webpack_require__(6),warning=__webpack_require__(7),ReactPropTypesSecret=__webpack_require__(8),checkPropTypes=__webpack_require__(9);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x===1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required "+("in `"+componentName+"`, but its value is `null`."):"The "+location+" `"+propFullName+"` is marked as required in "+("`"+componentName+"`, but its value is `undefined`.")):null:validate(props,propName,componentName,location,propFullName)}if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){function validate(props,propName,componentName,location,propFullName,secret){var propValue=props[propName],propType=getPropType(propValue);if(propType!==expectedType){var preciseType=getPreciseType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+preciseType+"` supplied to `"+componentName+"`, expected ")+("`"+expectedType+"`."))}return null}return createChainableTypeChecker(validate)}function createAnyTypeChecker(){return createChainableTypeChecker(emptyFunction.thatReturnsNull)}function createArrayOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an array."))}for(var i=0;i1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}(),module.exports=warning},function(module,exports){"use strict";var ReactPropTypesSecret="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";module.exports=ReactPropTypesSecret},function(module,exports,__webpack_require__){"use strict";function checkPropTypes(typeSpecs,values,location,componentName,getStack){if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV)for(var typeSpecName in typeSpecs)if(typeSpecs.hasOwnProperty(typeSpecName)){var error;try{invariant("function"==typeof typeSpecs[typeSpecName],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",componentName||"React class",location,typeSpecName),error=typeSpecs[typeSpecName](values,typeSpecName,componentName,location,null,ReactPropTypesSecret)}catch(ex){error=ex}if(warning(!error||error instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",componentName||"React class",location,typeSpecName,typeof error),error instanceof Error&&!(error.message in loggedTypeFailures)){loggedTypeFailures[error.message]=!0;var stack=getStack?getStack():"";warning(!1,"Failed %s type: %s%s",location,error.message,null!=stack?stack:"")}}}if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV)var invariant=__webpack_require__(6),warning=__webpack_require__(7),ReactPropTypesSecret=__webpack_require__(8),loggedTypeFailures={};module.exports=checkPropTypes},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(5),invariant=__webpack_require__(6);module.exports=function(){function shim(){invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function getShim(){return shim}shim.isRequired=shim;var ReactPropTypes={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim};return ReactPropTypes.checkPropTypes=emptyFunction,ReactPropTypes.PropTypes=ReactPropTypes,ReactPropTypes}},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_11__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i Date: Thu, 27 Apr 2017 09:26:29 -0500 Subject: [PATCH 242/412] chore(changelog): Update CHANGELOG --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfd7ed93..b97f6bf6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### 2.2.4 (Apr 27, 2017) + +- Internal: Moved `PropTypes` access to `prop-types` package for React 15.5 (prep for 16) +- Feature: Added TypeScript definitions (thanks @erfangc) +- Bugfix: No longer can erroneously add user-select style multiple times +- Bugfix: OffsetParent with padding problem, fixes [#218](https://github.com/mzabriskie/react-draggable/issues/218) +- Refactor: Misc example updates. + ### 2.2.3 (Nov 21, 2016) - Bugfix: Fix an issue with the entire window scrolling on a drag on iDevices. Thanks @JaneCoder. See #183 From c47fc81b097dca022b965e9057c56f9b8ad43e3d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 28 Apr 2017 13:55:52 -0500 Subject: [PATCH 243/412] docs(README): Update badges --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index feba41e4..6d441937 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ -# React-Draggable [![Build Status](https://travis-ci.org/mzabriskie/react-draggable.svg?branch=master)](https://travis-ci.org/mzabriskie/react-draggable) ![https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true) [![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)]() +# React-Draggable + +[![TravisCI Build Status](https://travis-ci.org/mzabriskie/react-draggable.svg?branch=master)](https://travis-ci.org/mzabriskie/react-draggable) +[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true)](https://ci.appveyor.com/project/mzabriskie/react-draggable) +[![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)](http://npmjs.com/package/react-draggable) +[![gzip size](http://img.badgesize.io/https://npmcdn.com/react-draggable/dist/react-draggable.min.js?compression=gzip)]() A simple component for making elements draggable. From b06c0990e91665d8379a75cd23e6de63e2f5c7f1 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 28 Apr 2017 13:59:02 -0500 Subject: [PATCH 244/412] fix(typescript): fixed TS def. Thanks @lostfictions Fixes #244 --- index.d.ts | 96 +++++++++++++++++++++++------------------------------- 1 file changed, 41 insertions(+), 55 deletions(-) diff --git a/index.d.ts b/index.d.ts index 64e9850f..31df5409 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,62 +1,48 @@ -import * as React from 'react'; - -export interface DraggableBounds { - left: number - right: number - top: number - bottom: number -} - -export interface DraggableProps extends DraggableCoreProps { - axis: 'both' | 'x' | 'y' | 'none', - bounds: DraggableBounds | string | false , - defaultClassName: string, - defaultClassNameDragging: string, - defaultClassNameDragged: string, - defaultPosition: ControlPosition, - position: ControlPosition -} -// eslint-disable-next-line no-use-before-define -export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false; - -export interface DraggableData { - node: HTMLElement, - x: number, y: number, - deltaX: number, deltaY: number, - lastX: number, lastY: number -} - -export type Bounds = { - left: number, top: number, right: number, bottom: number -}; -export type ControlPosition = {x: number, y: number}; -export type EventHandler = (e: T) => void | false; +declare module 'react-draggable' { + import * as React from 'react'; + export interface DraggableBounds { + left: number + right: number + top: number + bottom: number + } -export interface DraggableCoreProps { - allowAnyClick: boolean, - cancel: string, - disabled: boolean, - enableUserSelectHack: boolean, - offsetParent: HTMLElement, - grid: [number, number], - handle: string, - onStart: DraggableEventHandler, - onDrag: DraggableEventHandler, - onStop: DraggableEventHandler, - onMouseDown: (e: MouseEvent) => void -} + export interface DraggableProps extends DraggableCoreProps { + axis: 'both' | 'x' | 'y' | 'none', + bounds: DraggableBounds | string | false , + defaultClassName: string, + defaultClassNameDragging: string, + defaultClassNameDragged: string, + defaultPosition: ControlPosition, + position: ControlPosition + } -class Draggable extends React.Component, DraggableState> { + export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false; -} + export interface DraggableData { + node: HTMLElement, + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number + } -class DraggableCore extends React.Component, DraggableState> { + export type ControlPosition = {x: number, y: number}; + + export interface DraggableCoreProps { + allowAnyClick: boolean, + cancel: string, + disabled: boolean, + enableUserSelectHack: boolean, + offsetParent: HTMLElement, + grid: [number, number], + handle: string, + onStart: DraggableEventHandler, + onDrag: DraggableEventHandler, + onStop: DraggableEventHandler, + onMouseDown: (e: MouseEvent) => void + } -} + export class Draggable extends React.Component, {}> {} -declare module 'react-draggable' { - export { - Draggable, - DraggableCore - } + export class DraggableCore extends React.Component, {}> {} } From ff67f9c4166ec1aa4e0c4791cc8ed54f770c9e13 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 28 Apr 2017 13:59:57 -0500 Subject: [PATCH 245/412] release v2.2.5 --- CHANGELOG.md | 4 ++++ bower.json | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b97f6bf6..6648bdc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 2.2.5 (Apr 28, 2017) + +- Bugfix: Typescript definition was incorrect. [#244](https://github.com/mzabriskie/react-draggable/issues/244) + ### 2.2.4 (Apr 27, 2017) - Internal: Moved `PropTypes` access to `prop-types` package for React 15.5 (prep for 16) diff --git a/bower.json b/bower.json index 984442f0..85d43692 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.4", + "version": "2.2.5", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/package.json b/package.json index 3c3c05d6..0a66a3ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.4", + "version": "2.2.5", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From a31c5bbfc965b03ffbd5c8d00a175a79ef8aa469 Mon Sep 17 00:00:00 2001 From: sa Date: Sat, 29 Apr 2017 01:45:04 -0400 Subject: [PATCH 246/412] Move TS defs to own folder and add tests --- Makefile | 1 + package.json | 5 +++- typings/index.d.ts | 53 +++++++++++++++++++++++++++++++++++ typings/test.tsx | 64 +++++++++++++++++++++++++++++++++++++++++++ typings/tsconfig.json | 11 ++++++++ 5 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 typings/index.d.ts create mode 100644 typings/test.tsx create mode 100644 typings/tsconfig.json diff --git a/Makefile b/Makefile index 644c04a1..f0109563 100644 --- a/Makefile +++ b/Makefile @@ -35,6 +35,7 @@ dist/%.js: $(BIN) test: $(BIN) @$(BIN)/karma start --single-run + @$(BIN)/tsc -p typings dev: $(BIN) script/build-watch diff --git a/package.json b/package.json index 0a66a3ab..73236ae4 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "build": "make clean build", "lint": "make lint" }, - "typings": "./index.d.ts", + "typings": "./typings/index.d.ts", "repository": { "type": "git", "url": "https://github.com/mzabriskie/react-draggable.git" @@ -29,6 +29,8 @@ }, "homepage": "https://github.com/mzabriskie/react-draggable", "devDependencies": { + "@types/react": "^15.0.23", + "@types/react-dom": "^15.5.0", "babel-cli": "^6.10.1", "babel-core": "^6.10.4", "babel-eslint": "^6.1.2", @@ -64,6 +66,7 @@ "react-frame-component": "0.6.2", "semver": "^5.3.0", "static-server": "^2.0.3", + "typescript": "^2.3.2", "uglify-js": "^2.7.0", "webpack": "^1.13.1", "webpack-dev-server": "^1.14.1" diff --git a/typings/index.d.ts b/typings/index.d.ts new file mode 100644 index 00000000..ae56fdeb --- /dev/null +++ b/typings/index.d.ts @@ -0,0 +1,53 @@ +declare module 'react-draggable' { + import * as React from 'react'; + + export interface DraggableBounds { + left: number + right: number + top: number + bottom: number + } + + export interface DraggableProps extends DraggableCoreProps { + axis: 'both' | 'x' | 'y' | 'none', + bounds: DraggableBounds | string | false , + defaultClassName: string, + defaultClassNameDragging: string, + defaultClassNameDragged: string, + defaultPosition: ControlPosition, + position: ControlPosition + } + + export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false; + + export interface DraggableData { + node: HTMLElement, + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number + } + + export type ControlPosition = {x: number, y: number}; + + export interface DraggableCoreProps { + allowAnyClick: boolean, + cancel: string, + disabled: boolean, + enableUserSelectHack: boolean, + offsetParent: HTMLElement, + grid: [number, number], + handle: string, + onStart: DraggableEventHandler, + onDrag: DraggableEventHandler, + onStop: DraggableEventHandler, + onMouseDown: (e: MouseEvent) => void + } + + export default class Draggable extends React.Component, {}> { + static defaultProps : DraggableProps; + } + + export class DraggableCore extends React.Component, {}> { + static defaultProps : DraggableCoreProps; + } +} diff --git a/typings/test.tsx b/typings/test.tsx new file mode 100644 index 00000000..64f6d998 --- /dev/null +++ b/typings/test.tsx @@ -0,0 +1,64 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import Draggable, {DraggableCore} from 'react-draggable'; + +const root = document.getElementById('root') + +function handleStart() {} +function handleDrag() {} +function handleStop() {} +function handleMouseDown() {} + +ReactDOM.render( + +
+
+
+
+ , + root +); + +ReactDOM.render( + +
+
+
+
+ , + root +); + + +ReactDOM.render(
, root); + +ReactDOM.render(
, root); diff --git a/typings/tsconfig.json b/typings/tsconfig.json new file mode 100644 index 00000000..9ad2ddb3 --- /dev/null +++ b/typings/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "noEmit": true, + "jsx": "preserve", + "strict": true + }, + "files": [ + "index.d.ts", + "test.tsx" + ] +} \ No newline at end of file From bfc93743051745d029696540158cd0776b579502 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 29 Apr 2017 09:36:49 -0500 Subject: [PATCH 247/412] docs(deprecations): remove old props --- README.md | 1 - example/example.js | 8 ++++---- specs/draggable.spec.jsx | 7 ++----- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 6d441937..78eb80af 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,6 @@ class App extends React.Element { defaultPosition={{x: 0, y: 0}} position={null} grid={[25, 25]} - zIndex={100} onStart={this.handleStart} onDrag={this.handleDrag} onStop={this.handleStop}> diff --git a/example/example.js b/example/example.js index 229897aa..8b9f10b7 100644 --- a/example/example.js +++ b/example/example.js @@ -67,7 +67,7 @@ var App = React.createClass({

Demo Source

- +
I can be dragged anywhere
@@ -103,7 +103,7 @@ var App = React.createClass({
I snap to a 50 x 50 grid
- +
I can only be moved 100px in any direction.
@@ -137,7 +137,7 @@ var App = React.createClass({ {"I have a default position of {x: 25, y: 25}, so I'm slightly offset."}
- +
My position can be changed programmatically.
I have a drag handler to sync state. @@ -149,7 +149,7 @@ var App = React.createClass({

- +
My position can be changed programmatically.
I have a dragStop handler to sync state. diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index fb89d6c2..8d59293a 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -42,7 +42,6 @@ describe('react-draggable', function () { assert(drag.props.handle === null); assert(drag.props.cancel === null); assert(drag.props.bounds == false); - assert(isNaN(drag.props.zIndex) === true); assert(typeof drag.props.onStart === 'function'); assert(typeof drag.props.onDrag === 'function'); assert(typeof drag.props.onStop === 'function'); @@ -115,7 +114,6 @@ describe('react-draggable', function () { handle=".handle" cancel=".cancel" grid={[10, 10]} - zIndex={1000} onStart={handleStart} onDrag={handleDrag} onStop={handleStop}> @@ -130,7 +128,6 @@ describe('react-draggable', function () { assert(drag.props.handle === '.handle'); assert(drag.props.cancel === '.cancel'); assert(_.isEqual(drag.props.grid, [10, 10])); - assert(drag.props.zIndex === 1000); assert(drag.props.onStart === handleStart); assert(drag.props.onDrag === handleDrag); assert(drag.props.onStop === handleStop); @@ -626,8 +623,8 @@ describe('react-draggable', function () { assert(data.deltaY === 100); } drag = TestUtils.renderIntoDocument( - -
+ +
); From d7463523d52de6013d49fc9eebd0a5d568c6a5f3 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 29 Apr 2017 09:40:01 -0500 Subject: [PATCH 248/412] feat(ts): Remove unused root d.ts & update yarn.lock --- Makefile | 2 +- index.d.ts | 48 ---------------------------------------------- typings/index.d.ts | 4 ++-- yarn.lock | 27 ++++++++++++++------------ 4 files changed, 18 insertions(+), 63 deletions(-) delete mode 100644 index.d.ts diff --git a/Makefile b/Makefile index f0109563..c59b3fe7 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,7 @@ clean: lint: @$(BIN)/flow @$(BIN)/eslint lib/* lib/utils/* specs/* + @$(BIN)/tsc -p typings build: $(LIB) $(MIN) @@ -35,7 +36,6 @@ dist/%.js: $(BIN) test: $(BIN) @$(BIN)/karma start --single-run - @$(BIN)/tsc -p typings dev: $(BIN) script/build-watch diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index 31df5409..00000000 --- a/index.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -declare module 'react-draggable' { - import * as React from 'react'; - export interface DraggableBounds { - left: number - right: number - top: number - bottom: number - } - - export interface DraggableProps extends DraggableCoreProps { - axis: 'both' | 'x' | 'y' | 'none', - bounds: DraggableBounds | string | false , - defaultClassName: string, - defaultClassNameDragging: string, - defaultClassNameDragged: string, - defaultPosition: ControlPosition, - position: ControlPosition - } - - export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false; - - export interface DraggableData { - node: HTMLElement, - x: number, y: number, - deltaX: number, deltaY: number, - lastX: number, lastY: number - } - - export type ControlPosition = {x: number, y: number}; - - export interface DraggableCoreProps { - allowAnyClick: boolean, - cancel: string, - disabled: boolean, - enableUserSelectHack: boolean, - offsetParent: HTMLElement, - grid: [number, number], - handle: string, - onStart: DraggableEventHandler, - onDrag: DraggableEventHandler, - onStop: DraggableEventHandler, - onMouseDown: (e: MouseEvent) => void - } - - export class Draggable extends React.Component, {}> {} - - export class DraggableCore extends React.Component, {}> {} -} diff --git a/typings/index.d.ts b/typings/index.d.ts index ae56fdeb..048c9609 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -1,6 +1,6 @@ declare module 'react-draggable' { import * as React from 'react'; - + export interface DraggableBounds { left: number right: number @@ -48,6 +48,6 @@ declare module 'react-draggable' { } export class DraggableCore extends React.Component, {}> { - static defaultProps : DraggableCoreProps; + static defaultProps : DraggableCoreProps; } } diff --git a/yarn.lock b/yarn.lock index 6fea5852..ee63e8b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,16 @@ # yarn lockfile v1 +"@types/react-dom@^15.5.0": + version "15.5.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-15.5.0.tgz#7f4fb9613d4051141773242f7b6b5f1a46b34bd9" + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^15.0.23": + version "15.0.23" + resolved "https://registry.yarnpkg.com/@types/react/-/react-15.0.23.tgz#f3facbef5290610f54242f00308759d3a3c27346" + Base64@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" @@ -1846,18 +1856,7 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.1, fbjs@^0.8.4: - version "0.8.6" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.6.tgz#7eb67d6986b2d5007a9b6e92e0e7cb6f75cad290" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - ua-parser-js "^0.7.9" - -fbjs@^0.8.9: +fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.9: version "0.8.12" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" dependencies: @@ -4013,6 +4012,10 @@ typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" +typescript@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.3.2.tgz#f0f045e196f69a72f06b25fd3bd39d01c3ce9984" + ua-parser-js@^0.7.9: version "0.7.12" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" From 267306250258ff79b942e1d1d1d87e2231dc8855 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 30 Apr 2017 15:52:14 -0500 Subject: [PATCH 249/412] release v2.2.6 --- CHANGELOG.md | 5 +++++ bower.json | 2 +- package.json | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6648bdc6..c3d15463 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 2.2.6 + +- Bugfix: Missing export default on TS definition (thanks @lostfictions) +- Internal: TS test suite (thanks @lostfictions) + ### 2.2.5 (Apr 28, 2017) - Bugfix: Typescript definition was incorrect. [#244](https://github.com/mzabriskie/react-draggable/issues/244) diff --git a/bower.json b/bower.json index 85d43692..5fbf7c5a 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.5", + "version": "2.2.6", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/package.json b/package.json index 73236ae4..4f37be6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.5", + "version": "2.2.6", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 63c5192c4bc1f54eae64bcd274d598ca07565df5 Mon Sep 17 00:00:00 2001 From: Daniil Moskovtsov Date: Tue, 25 Jul 2017 09:11:11 +1200 Subject: [PATCH 250/412] Update README.md (#264) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78eb80af..5307083e 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ import Draggable from 'react-draggable'; class App extends React.Element { eventLogger = (e: MouseEvent, data: Object) => { - console.log('Event: ', event); + console.log('Event: ', e); console.log('Data: ', data); }; From 1da3c2e160730ca24137a1d8f7467cd5dfb5e4de Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 12:34:59 -0400 Subject: [PATCH 251/412] chore(travis): node 8 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 27add778..961dbc32 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: node_js node_js: - "4" - "6" - - "7" + - "8" cache: yarn before_script: - export CHROME_BIN=chromium-browser From e405109dea195e12af7f3c98e646617655b0cf1a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 13:51:26 -0400 Subject: [PATCH 252/412] chore(pkg): webpack 3, flow 0.53, uglifyjs 3 --- .eslintrc | 1 + .flowconfig | 4 - Makefile | 8 +- dist/react-draggable.js | 4864 +++++++++-------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 4 +- dist/react-draggable.min.js.map | 2 +- karma.conf.js | 8 +- lib/{Draggable.es6 => Draggable.js} | 21 +- lib/{DraggableCore.es6 => DraggableCore.js} | 88 +- lib/utils/{domFns.es6 => domFns.js} | 6 +- lib/utils/{getPrefix.es6 => getPrefix.js} | 0 lib/utils/{log.es6 => log.js} | 0 lib/utils/{positionFns.es6 => positionFns.js} | 26 +- lib/utils/{shims.es6 => shims.js} | 0 lib/utils/{types.es6 => types.js} | 0 package.json | 75 +- specs/draggable.spec.jsx | 2 +- webpack.config.js | 8 +- yarn.lock | 3641 ++++++++---- 20 files changed, 5143 insertions(+), 3617 deletions(-) rename lib/{Draggable.es6 => Draggable.js} (95%) rename lib/{DraggableCore.es6 => DraggableCore.js} (83%) rename lib/utils/{domFns.es6 => domFns.js} (97%) rename lib/utils/{getPrefix.es6 => getPrefix.js} (100%) rename lib/utils/{log.es6 => log.js} (100%) rename lib/utils/{positionFns.es6 => positionFns.js} (88%) rename lib/utils/{shims.es6 => shims.js} (100%) rename lib/utils/{types.es6 => types.js} (100%) diff --git a/.eslintrc b/.eslintrc index a35beb2d..abb9d95b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -27,6 +27,7 @@ "ReactElement", "ReactClass", "$Shape", + "$Exact", "MouseTouchEvent", } } diff --git a/.flowconfig b/.flowconfig index 2bd785fd..664564c6 100644 --- a/.flowconfig +++ b/.flowconfig @@ -16,7 +16,3 @@ suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowNewLine.* suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowIssue esproposal.class_instance_fields=enable esproposal.class_static_fields=enable -module.file_ext=.js -module.file_ext=.jsx -module.file_ext=.es5 -module.file_ext=.es6 diff --git a/Makefile b/Makefile index c59b3fe7..ff4a105e 100644 --- a/Makefile +++ b/Makefile @@ -24,12 +24,10 @@ install link: @npm $@ dist/%.min.js: $(LIB) $(BIN) - @$(BIN)/uglifyjs $< \ + $(BIN)/uglifyjs $< \ --output $@ \ - --source-map $@.map \ - --source-map-url $(basename $@.map) \ - --in-source-map $<.map \ - --compress warnings=false + --source-map "filename=$@.map,root=$(basename $<.map),content=$<.map" \ + --compress dist/%.js: $(BIN) @$(BIN)/webpack --devtool source-map diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 867dfce3..b831f8bb 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -1,13 +1,13 @@ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("react"), require("react-dom")); + module.exports = factory(require("react-dom"), require("react")); else if(typeof define === 'function' && define.amd) - define(["react", "react-dom"], factory); + define(["react-dom", "react"], factory); else if(typeof exports === 'object') - exports["ReactDraggable"] = factory(require("react"), require("react-dom")); + exports["ReactDraggable"] = factory(require("react-dom"), require("react")); else - root["ReactDraggable"] = factory(root["React"], root["ReactDOM"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_11__) { + root["ReactDraggable"] = factory(root["ReactDOM"], root["React"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -16,21 +16,21 @@ return /******/ (function(modules) { // webpackBootstrap /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) +/******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; -/******/ +/******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded -/******/ module.loaded = true; +/******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; @@ -43,2413 +43,2549 @@ return /******/ (function(modules) { // webpackBootstrap /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(0); +/******/ return __webpack_require__(__webpack_require__.s = 12); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { - 'use strict'; - - module.exports = __webpack_require__(1).default; - module.exports.DraggableCore = __webpack_require__(17).default; +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.findInArray = findInArray; +exports.isFunction = isFunction; +exports.isNum = isNum; +exports.int = int; +exports.dontSetMe = dontSetMe; -/***/ }, +// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc +function findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/ { + for (var i = 0, length = array.length; i < length; i++) { + if (callback.apply(callback, [array[i], i, array])) return array[i]; + } +} + +function isFunction(func /*: any*/) /*: boolean*/ { + return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; +} + +function isNum(num /*: any*/) /*: boolean*/ { + return typeof num === 'number' && !isNaN(num); +} + +function int(a /*: string*/) /*: number*/ { + return parseInt(a, 10); +} + +function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) { + if (props[propName]) { + return new Error('Invalid prop ' + propName + ' passed to ' + componentName + ' - do not set this, set it on the child.'); + } +} + +/***/ }), /* 1 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - var _react = __webpack_require__(2); - - var _react2 = _interopRequireDefault(_react); - - var _propTypes = __webpack_require__(3); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _reactDom = __webpack_require__(11); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _classnames = __webpack_require__(12); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _domFns = __webpack_require__(13); - - var _positionFns = __webpack_require__(16); - - var _shims = __webpack_require__(14); - - var _DraggableCore = __webpack_require__(17); - - var _DraggableCore2 = _interopRequireDefault(_DraggableCore); - - var _log = __webpack_require__(19); - - var _log2 = _interopRequireDefault(_log); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - // $FlowIgnore - - - /*:: import type {DraggableEventHandler} from './utils/types';*/ - /*:: type DraggableState = { - dragging: boolean, - dragged: boolean, - x: number, y: number, - slackX: number, slackY: number, - isElementSVG: boolean - };*/ - - - // - // Define - // - - /*:: type ConstructorProps = { - position: { x: number, y: number }, - defaultPosition: { x: number, y: number } - };*/ - - var Draggable = function (_React$Component) { - _inherits(Draggable, _React$Component); - - function Draggable(props /*: ConstructorProps*/) { - _classCallCheck(this, Draggable); - - var _this = _possibleConstructorReturn(this, (Draggable.__proto__ || Object.getPrototypeOf(Draggable)).call(this, props)); - - _this.onDragStart = function (e, coreData) { - (0, _log2.default)('Draggable: onDragStart: %j', coreData); - - // Short-circuit if user's callback killed it. - var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_this, coreData)); - // Kills start event on core as well, so move handlers are never bound. - if (shouldStart === false) return false; - - _this.setState({ dragging: true, dragged: true }); - }; - - _this.onDrag = function (e, coreData) { - if (!_this.state.dragging) return false; - (0, _log2.default)('Draggable: onDrag: %j', coreData); - - var uiData = (0, _positionFns.createDraggableData)(_this, coreData); - - var newState /*: $Shape*/ = { - x: uiData.x, - y: uiData.y - }; - - // Keep within bounds. - if (_this.props.bounds) { - // Save original x and y. - var _x = newState.x, - _y = newState.y; - - // Add slack to the values used to calculate bound position. This will ensure that if - // we start removing slack, the element won't react to it right away until it's been - // completely removed. - - newState.x += _this.state.slackX; - newState.y += _this.state.slackY; - - // Get bound position. This will ceil/floor the x and y within the boundaries. - // $FlowBug - - // Recalculate slack by noting how much was shaved by the boundPosition handler. - var _getBoundPosition = (0, _positionFns.getBoundPosition)(_this, newState.x, newState.y); - - var _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2); - - newState.x = _getBoundPosition2[0]; - newState.y = _getBoundPosition2[1]; - newState.slackX = _this.state.slackX + (_x - newState.x); - newState.slackY = _this.state.slackY + (_y - newState.y); - - // Update the event we fire to reflect what really happened after bounds took effect. - uiData.x = _x; - uiData.y = _y; - uiData.deltaX = newState.x - _this.state.x; - uiData.deltaY = newState.y - _this.state.y; - } - - // Short-circuit if user's callback killed it. - var shouldUpdate = _this.props.onDrag(e, uiData); - if (shouldUpdate === false) return false; - - _this.setState(newState); - }; - - _this.onDragStop = function (e, coreData) { - if (!_this.state.dragging) return false; - - // Short-circuit if user's callback killed it. - var shouldStop = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_this, coreData)); - if (shouldStop === false) return false; - - (0, _log2.default)('Draggable: onDragStop: %j', coreData); - - var newState /*: $Shape*/ = { - dragging: false, - slackX: 0, - slackY: 0 - }; - - // If this is a controlled component, the result of this operation will be to - // revert back to the old position. We expect a handler on `onDragStop`, at the least. - var controlled = Boolean(_this.props.position); - if (controlled) { - var _this$props$position = _this.props.position, - _x2 = _this$props$position.x, - _y2 = _this$props$position.y; - - newState.x = _x2; - newState.y = _y2; - } - - _this.setState(newState); - }; - - _this.state = { - // Whether or not we are currently dragging. - dragging: false, - - // Whether or not we have been dragged before. - dragged: false, - - // Current transform x and y. - x: props.position ? props.position.x : props.defaultPosition.x, - y: props.position ? props.position.y : props.defaultPosition.y, - - // Used for compensating for out-of-bounds drags - slackX: 0, slackY: 0, - - // Can only determine if SVG after mounting - isElementSVG: false - }; - return _this; - } - - _createClass(Draggable, [{ - key: 'componentWillMount', - value: function componentWillMount() { - if (this.props.position && !(this.props.onDrag || this.props.onStop)) { - // eslint-disable-next-line - console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); - } - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - // Check to see if the element passed is an instanceof SVGElement - if (typeof SVGElement !== 'undefined' && _reactDom2.default.findDOMNode(this) instanceof SVGElement) { - this.setState({ isElementSVG: true }); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps /*: Object*/) { - // Set x/y if position has changed - if (nextProps.position && (!this.props.position || nextProps.position.x !== this.props.position.x || nextProps.position.y !== this.props.position.y)) { - this.setState({ x: nextProps.position.x, y: nextProps.position.y }); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.setState({ dragging: false }); // prevents invariant if unmounted while dragging - } - }, { - key: 'render', - value: function render() /*: React.Element*/ { - var _classNames; - - var style = {}, - svgTransform = null; - - // If this is controlled, we don't want to move it - unless it's dragging. - var controlled = Boolean(this.props.position); - var draggable = !controlled || this.state.dragging; - - var position = this.props.position || this.props.defaultPosition; - var transformOpts = { - // Set left if horizontal drag is enabled - x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : position.x, - - // Set top if vertical drag is enabled - y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : position.y - }; - - // If this element was SVG, we use the `transform` attribute. - if (this.state.isElementSVG) { - svgTransform = (0, _domFns.createSVGTransform)(transformOpts); - } else { - // Add a CSS transform to move the element around. This allows us to move the element around - // without worrying about whether or not it is relatively or absolutely positioned. - // If the item you are dragging already has a transform set, wrap it in a so - // has a clean slate. - style = (0, _domFns.createCSSTransform)(transformOpts); - } - - var _props = this.props, - defaultClassName = _props.defaultClassName, - defaultClassNameDragging = _props.defaultClassNameDragging, - defaultClassNameDragged = _props.defaultClassNameDragged; - - // Mark with class while dragging - - var className = (0, _classnames2.default)(this.props.children.props.className || '', defaultClassName, (_classNames = {}, _defineProperty(_classNames, defaultClassNameDragging, this.state.dragging), _defineProperty(_classNames, defaultClassNameDragged, this.state.dragged), _classNames)); - - // Reuse the child provided - // This makes it flexible to use whatever element is wanted (div, ul, etc) - return _react2.default.createElement( - _DraggableCore2.default, - _extends({}, this.props, { onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop }), - _react2.default.cloneElement(_react2.default.Children.only(this.props.children), { - className: className, - style: _extends({}, this.props.children.props.style, style), - transform: svgTransform - }) - ); - } - }]); - - return Draggable; - }(_react2.default.Component); - - Draggable.displayName = 'Draggable'; - Draggable.propTypes = _extends({}, _DraggableCore2.default.propTypes, { - - /** - * `axis` determines which axis the draggable can move. - * - * Note that all callbacks will still return data as normal. This only - * controls flushing to the DOM. - * - * 'both' allows movement horizontally and vertically. - * 'x' limits movement to horizontal axis. - * 'y' limits movement to vertical axis. - * 'none' limits all movement. - * - * Defaults to 'both'. - */ - axis: _propTypes2.default.oneOf(['both', 'x', 'y', 'none']), - - /** - * `bounds` determines the range of movement available to the element. - * Available values are: - * - * 'parent' restricts movement within the Draggable's parent node. - * - * Alternatively, pass an object with the following properties, all of which are optional: - * - * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND} - * - * All values are in px. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
Content
- *
- * ); - * } - * }); - * ``` - */ - bounds: _propTypes2.default.oneOfType([_propTypes2.default.shape({ - left: _propTypes2.default.number, - right: _propTypes2.default.number, - top: _propTypes2.default.number, - bottom: _propTypes2.default.number - }), _propTypes2.default.string, _propTypes2.default.oneOf([false])]), - - defaultClassName: _propTypes2.default.string, - defaultClassNameDragging: _propTypes2.default.string, - defaultClassNameDragged: _propTypes2.default.string, - - /** - * `defaultPosition` specifies the x and y that the dragged item should start at - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I start with transformX: 25px and transformY: 25px;
- *
- * ); - * } - * }); - * ``` - */ - defaultPosition: _propTypes2.default.shape({ - x: _propTypes2.default.number, - y: _propTypes2.default.number - }), - - /** - * `position`, if present, defines the current position of the element. - * - * This is similar to how form elements in React work - if no `position` is supplied, the component - * is uncontrolled. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I start with transformX: 25px and transformY: 25px;
- *
- * ); - * } - * }); - * ``` - */ - position: _propTypes2.default.shape({ - x: _propTypes2.default.number, - y: _propTypes2.default.number - }), - - /** - * These properties should be defined on the child, not here. - */ - className: _shims.dontSetMe, - style: _shims.dontSetMe, - transform: _shims.dontSetMe - }); - Draggable.defaultProps = _extends({}, _DraggableCore2.default.defaultProps, { - axis: 'both', - bounds: false, - defaultClassName: 'react-draggable', - defaultClassNameDragging: 'react-draggable-dragging', - defaultClassNameDragged: 'react-draggable-dragged', - defaultPosition: { x: 0, y: 0 }, - position: null - }); - exports.default = Draggable; - -/***/ }, +"use strict"; + + +/** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * + */ + +function makeEmptyFunction(arg) { + return function () { + return arg; + }; +} + +/** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ +var emptyFunction = function emptyFunction() {}; + +emptyFunction.thatReturns = makeEmptyFunction; +emptyFunction.thatReturnsFalse = makeEmptyFunction(false); +emptyFunction.thatReturnsTrue = makeEmptyFunction(true); +emptyFunction.thatReturnsNull = makeEmptyFunction(null); +emptyFunction.thatReturnsThis = function () { + return this; +}; +emptyFunction.thatReturnsArgument = function (arg) { + return arg; +}; + +module.exports = emptyFunction; + +/***/ }), /* 2 */ -/***/ function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + + +/** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + +var validateFormat = function validateFormat(format) {}; + +if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + validateFormat = function validateFormat(format) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + }; +} + +function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } +} - module.exports = __WEBPACK_EXTERNAL_MODULE_2__; +module.exports = invariant; -/***/ }, +/***/ }), /* 3 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && - Symbol.for && - Symbol.for('react.element')) || - 0xeac7; - - var isValidElement = function(object) { - return typeof object === 'object' && - object !== null && - object.$$typeof === REACT_ELEMENT_TYPE; - }; - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = __webpack_require__(4)(isValidElement, throwOnDirectAccess); - } else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(10)(); - } +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + -/***/ }, +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + + +/***/ }), /* 4 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - 'use strict'; - - var emptyFunction = __webpack_require__(5); - var invariant = __webpack_require__(6); - var warning = __webpack_require__(7); - - var ReactPropTypesSecret = __webpack_require__(8); - var checkPropTypes = __webpack_require__(9); - - module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - } else if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - warning( - false, - 'You are manually calling a React.PropTypes validation ' + - 'function for the `%s` prop on `%s`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', - propFullName, - componentName - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction.thatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - ({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - ({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; - }; - - -/***/ }, +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_4__; + +/***/ }), /* 5 */ -/***/ function(module, exports) { - - "use strict"; - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - - function makeEmptyFunction(arg) { - return function () { - return arg; - }; - } - - /** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ - var emptyFunction = function emptyFunction() {}; - - emptyFunction.thatReturns = makeEmptyFunction; - emptyFunction.thatReturnsFalse = makeEmptyFunction(false); - emptyFunction.thatReturnsTrue = makeEmptyFunction(true); - emptyFunction.thatReturnsNull = makeEmptyFunction(null); - emptyFunction.thatReturnsThis = function () { - return this; - }; - emptyFunction.thatReturnsArgument = function (arg) { - return arg; - }; - - module.exports = emptyFunction; - -/***/ }, +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +exports.matchesSelector = matchesSelector; +exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo; +exports.addEvent = addEvent; +exports.removeEvent = removeEvent; +exports.outerHeight = outerHeight; +exports.outerWidth = outerWidth; +exports.innerHeight = innerHeight; +exports.innerWidth = innerWidth; +exports.offsetXYFromParent = offsetXYFromParent; +exports.createCSSTransform = createCSSTransform; +exports.createSVGTransform = createSVGTransform; +exports.getTouch = getTouch; +exports.getTouchIdentifier = getTouchIdentifier; +exports.addUserSelectStyles = addUserSelectStyles; +exports.removeUserSelectStyles = removeUserSelectStyles; +exports.styleHacks = styleHacks; + +var _shims = __webpack_require__(0); + +var _getPrefix = __webpack_require__(18); + +var _getPrefix2 = _interopRequireDefault(_getPrefix); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +/*:: import type {ControlPosition} from './types';*/ + + +var matchesSelectorFunc = ''; +function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/ { + if (!matchesSelectorFunc) { + matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) { + // $FlowIgnore: Doesn't think elements are indexable + return (0, _shims.isFunction)(el[method]); + }); + } + + // $FlowIgnore: Doesn't think elements are indexable + return el[matchesSelectorFunc].call(el, selector); +} + +// Works up the tree to the draggable itself attempting to match selector. +function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/ { + var node = el; + do { + if (matchesSelector(node, selector)) return true; + if (node === baseNode) return false; + node = node.parentNode; + } while (node); + + return false; +} + +function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { + if (!el) { + return; + } + if (el.attachEvent) { + el.attachEvent('on' + event, handler); + } else if (el.addEventListener) { + el.addEventListener(event, handler, true); + } else { + // $FlowIgnore: Doesn't think elements are indexable + el['on' + event] = handler; + } +} + +function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { + if (!el) { + return; + } + if (el.detachEvent) { + el.detachEvent('on' + event, handler); + } else if (el.removeEventListener) { + el.removeEventListener(event, handler, true); + } else { + // $FlowIgnore: Doesn't think elements are indexable + el['on' + event] = null; + } +} + +function outerHeight(node /*: HTMLElement*/) /*: number*/ { + // This is deliberately excluding margin for our calculations, since we are using + // offsetTop which is including margin. See getBoundPosition + var height = node.clientHeight; + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); + height += (0, _shims.int)(computedStyle.borderTopWidth); + height += (0, _shims.int)(computedStyle.borderBottomWidth); + return height; +} + +function outerWidth(node /*: HTMLElement*/) /*: number*/ { + // This is deliberately excluding margin for our calculations, since we are using + // offsetLeft which is including margin. See getBoundPosition + var width = node.clientWidth; + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); + width += (0, _shims.int)(computedStyle.borderLeftWidth); + width += (0, _shims.int)(computedStyle.borderRightWidth); + return width; +} +function innerHeight(node /*: HTMLElement*/) /*: number*/ { + var height = node.clientHeight; + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); + height -= (0, _shims.int)(computedStyle.paddingTop); + height -= (0, _shims.int)(computedStyle.paddingBottom); + return height; +} + +function innerWidth(node /*: HTMLElement*/) /*: number*/ { + var width = node.clientWidth; + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); + width -= (0, _shims.int)(computedStyle.paddingLeft); + width -= (0, _shims.int)(computedStyle.paddingRight); + return width; +} + +// Get from offsetParent +function offsetXYFromParent(evt /*: {clientX: number, clientY: number}*/, offsetParent /*: HTMLElement*/) /*: ControlPosition*/ { + var isBody = offsetParent === offsetParent.ownerDocument.body; + var offsetParentRect = isBody ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); + + var x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; + var y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; + + return { x: x, y: y }; +} + +function createCSSTransform(_ref) /*: Object*/ { + var x = _ref.x, + y = _ref.y; + + // Replace unitless items with px + return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix2.default), 'translate(' + x + 'px,' + y + 'px)'); +} + +function createSVGTransform(_ref3) /*: string*/ { + var x = _ref3.x, + y = _ref3.y; + + return 'translate(' + x + ',' + y + ')'; +} + +function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { + return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) { + return identifier === t.identifier; + }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) { + return identifier === t.identifier; + }); +} + +function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/ { + if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; + if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; +} + +// User-select Hacks: +// +// Useful for preventing blue highlights all over everything when dragging. +var userSelectPrefix = (0, _getPrefix.getPrefix)('user-select'); +var userSelect = (0, _getPrefix.browserPrefixToStyle)('user-select', userSelectPrefix); +var userSelectStyle = ';' + userSelect + ': none;'; +var userSelectReplaceRegExp = new RegExp(';?' + userSelect + ': none;'); // leading ; not present on IE + +// Note we're passing `document` b/c we could be iframed +function addUserSelectStyles(body /*: ?HTMLElement*/) { + if (!body) return; + var style = body.getAttribute('style') || ''; + if (userSelectReplaceRegExp.test(style)) return; // don't add twice + body.setAttribute('style', style + userSelectStyle); +} + +function removeUserSelectStyles(body /*: ?HTMLElement*/) { + if (!body) return; + var style = body.getAttribute('style') || ''; + body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); +} + +function styleHacks() /*: Object*/ { + var childStyle /*: Object*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + // Workaround IE pointer events; see #51 + // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 + return _extends({ + touchAction: 'none' + }, childStyle); +} + +/***/ }), /* 6 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - - 'use strict'; - - /** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - - var validateFormat = function validateFormat(format) {}; - - if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - validateFormat = function validateFormat(format) { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - }; - } - - function invariant(condition, format, a, b, c, d, e, f) { - validateFormat(format); - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } - } - - module.exports = invariant; +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_6__; -/***/ }, +/***/ }), /* 7 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - - 'use strict'; - - var emptyFunction = __webpack_require__(5); - - /** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var warning = emptyFunction; - - if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - (function () { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; - })(); - } - - module.exports = warning; +/***/ (function(module, exports, __webpack_require__) { + +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && + Symbol.for && + Symbol.for('react.element')) || + 0xeac7; + + var isValidElement = function(object) { + return typeof object === 'object' && + object !== null && + object.$$typeof === REACT_ELEMENT_TYPE; + }; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = __webpack_require__(14)(isValidElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = __webpack_require__(16)(); +} + -/***/ }, +/***/ }), /* 8 */ -/***/ function(module, exports) { - - /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - 'use strict'; - - var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - - module.exports = ReactPropTypesSecret; +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + + +var emptyFunction = __webpack_require__(1); + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = emptyFunction; + +if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + (function () { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; -/***/ }, + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; + })(); +} + +module.exports = warning; + +/***/ }), /* 9 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - 'use strict'; - - if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - var invariant = __webpack_require__(6); - var warning = __webpack_require__(7); - var ReactPropTypesSecret = __webpack_require__(8); - var loggedTypeFailures = {}; - } - - /** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ - function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); - } - } - } - } - } - - module.exports = checkPropTypes; +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getBoundPosition = getBoundPosition; +exports.snapToGrid = snapToGrid; +exports.canDragX = canDragX; +exports.canDragY = canDragY; +exports.getControlPosition = getControlPosition; +exports.createCoreData = createCoreData; +exports.createDraggableData = createDraggableData; + +var _shims = __webpack_require__(0); + +var _reactDom = __webpack_require__(4); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _domFns = __webpack_require__(5); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/*:: import type Draggable from '../Draggable';*/ +/*:: import type {Bounds, ControlPosition, DraggableData} from './types';*/ +/*:: import type DraggableCore from '../DraggableCore';*/ +function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/ { + // If no bounds, short-circuit and move on + if (!draggable.props.bounds) return [x, y]; + + // Clone new bounds + var bounds = draggable.props.bounds; + + bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds); + var node = findDOMNode(draggable); + + if (typeof bounds === 'string') { + var ownerDocument = node.ownerDocument; + var ownerWindow = ownerDocument.defaultView; + var boundNode = void 0; + if (bounds === 'parent') { + boundNode = node.parentNode; + } else { + boundNode = ownerDocument.querySelector(bounds); + } + if (!(boundNode instanceof HTMLElement)) { + throw new Error('Bounds selector "' + bounds + '" could not find an element.'); + } + var nodeStyle = ownerWindow.getComputedStyle(node); + var boundNodeStyle = ownerWindow.getComputedStyle(boundNode); + // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. + bounds = { + left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft), + top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop), + right: (0, _domFns.innerWidth)(boundNode) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight), + bottom: (0, _domFns.innerHeight)(boundNode) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom) + }; + } -/***/ }, + // Keep x and y below right and bottom limits... + if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right); + if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); + + // But above left and top limits. + if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left); + if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top); + + return [x, y]; +} + +function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/ { + var x = Math.round(pendingX / grid[0]) * grid[0]; + var y = Math.round(pendingY / grid[1]) * grid[1]; + return [x, y]; +} + +function canDragX(draggable /*: Draggable*/) /*: boolean*/ { + return draggable.props.axis === 'both' || draggable.props.axis === 'x'; +} + +function canDragY(draggable /*: Draggable*/) /*: boolean*/ { + return draggable.props.axis === 'both' || draggable.props.axis === 'y'; +} + +// Get {x, y} positions from event. +function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { + var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null; + if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch + var node = findDOMNode(draggableCore); + // User can provide an offsetParent if desired. + var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body; + return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent); +} + +// Create an data object exposed by 's events +function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/ { + var state = draggable.state; + var isStart = !(0, _shims.isNum)(state.lastX); + var node = findDOMNode(draggable); + + if (isStart) { + // If this is our first move, use the x and y as last coords. + return { + node: node, + deltaX: 0, deltaY: 0, + lastX: x, lastY: y, + x: x, y: y + }; + } else { + // Otherwise calculate proper values. + return { + node: node, + deltaX: x - state.lastX, deltaY: y - state.lastY, + lastX: state.lastX, lastY: state.lastY, + x: x, y: y + }; + } +} + +// Create an data exposed by 's events +function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/ { + return { + node: coreData.node, + x: draggable.state.x + coreData.deltaX, + y: draggable.state.y + coreData.deltaY, + deltaX: coreData.deltaX, + deltaY: coreData.deltaY, + lastX: draggable.state.x, + lastY: draggable.state.y + }; +} + +// A lot faster than stringify/parse +function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/ { + return { + left: bounds.left, + top: bounds.top, + right: bounds.right, + bottom: bounds.bottom + }; +} + +function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/ { + var node = _reactDom2.default.findDOMNode(draggable); + if (!node) { + throw new Error(': Unmounted during event!'); + } + // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME + return node; +} + +/***/ }), /* 10 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - 'use strict'; - - var emptyFunction = __webpack_require__(5); - var invariant = __webpack_require__(6); - - module.exports = function() { - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - function shim() { - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - - any: shim, - arrayOf: getShim, - element: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim - }; - - ReactPropTypes.checkPropTypes = emptyFunction; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; - }; - - -/***/ }, +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__(6); + +var React = _interopRequireWildcard(_react); + +var _propTypes = __webpack_require__(7); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__(4); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _domFns = __webpack_require__(5); + +var _positionFns = __webpack_require__(9); + +var _shims = __webpack_require__(0); + +var _log = __webpack_require__(11); + +var _log2 = _interopRequireDefault(_log); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +// Simple abstraction for dragging events names. +/*:: import type {EventHandler} from './utils/types';*/ +var eventsFor = { + touch: { + start: 'touchstart', + move: 'touchmove', + stop: 'touchend' + }, + mouse: { + start: 'mousedown', + move: 'mousemove', + stop: 'mouseup' + } +}; + +// Default to mouse events. +var dragEventFor = eventsFor.mouse; + +/*:: type DraggableCoreState = { + dragging: boolean, + lastX: number, + lastY: number, + touchIdentifier: ?number +};*/ +/*:: export type DraggableBounds = { + left: number, + right: number, + top: number, + bottom: number, +};*/ +/*:: export type DraggableData = { + node: HTMLElement, + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number, +};*/ +/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;*/ +/*:: export type ControlPosition = {x: number, y: number};*/ + + +// +// Define . +// +// is for advanced usage of . It maintains minimal internal state so it can +// work well with libraries that require more control over the element. +// + +/*:: export type DraggableCoreProps = { + allowAnyClick: boolean, + cancel: string, + children: React.Element, + disabled: boolean, + enableUserSelectHack: boolean, + offsetParent: HTMLElement, + grid: [number, number], + handle: string, + onStart: DraggableEventHandler, + onDrag: DraggableEventHandler, + onStop: DraggableEventHandler, + onMouseDown: (e: MouseEvent) => void, +};*/ + +var DraggableCore = function (_React$Component) { + _inherits(DraggableCore, _React$Component); + + function DraggableCore() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, DraggableCore); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = DraggableCore.__proto__ || Object.getPrototypeOf(DraggableCore)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + dragging: false, + // Used while dragging to determine deltas. + lastX: NaN, lastY: NaN, + touchIdentifier: null + }, _this.handleDragStart = function (e) { + // Make it possible to attach event handlers on top of this one. + _this.props.onMouseDown(e); + + // Only accept left-clicks. + if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; + + // Get nodes. Be sure to grab relative document (could be iframed) + var thisNode = _reactDom2.default.findDOMNode(_this); + if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) { + throw new Error(' not mounted on DragStart!'); + } + var ownerDocument = thisNode.ownerDocument; + + // Short circuit if handle or cancel prop was provided and selector doesn't match. + + if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) { + return; + } + + // Set touch identifier in component state if this is a touch event. This allows us to + // distinguish between individual touches on multitouch screens by identifying which + // touchpoint was set to this element. + var touchIdentifier = (0, _domFns.getTouchIdentifier)(e); + _this.setState({ touchIdentifier: touchIdentifier }); + + // Get the current drag point from the event. This is used as the offset. + var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _this); + if (position == null) return; // not possible but satisfies flow + var x = position.x, + y = position.y; + + // Create an event object with all the data parents need to make a decision here. + + var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); + + (0, _log2.default)('DraggableCore: handleDragStart: %j', coreEvent); + + // Call event handler. If it returns explicit false, cancel. + (0, _log2.default)('calling', _this.props.onStart); + var shouldUpdate = _this.props.onStart(e, coreEvent); + if (shouldUpdate === false) return; + + // Add a style to the body to disable user-select. This prevents text from + // being selected all over the page. + if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument.body); + + // Initiate dragging. Set the current x and y as offsets + // so we know how much we've moved during the drag. This allows us + // to drag elements around even if they have been moved, without issue. + _this.setState({ + dragging: true, + + lastX: x, + lastY: y + }); + + // Add events to the document directly so we catch when the user's mouse/touch moves outside of + // this element. We use different events depending on whether or not we have detected that this + // is a touch-capable device. + (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag); + (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop); + }, _this.handleDrag = function (e) { + + // Prevent scrolling on mobile devices, like ipad/iphone. + if (e.type === 'touchmove') e.preventDefault(); + + // Get the current drag point from the event. This is used as the offset. + var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); + if (position == null) return; + var x = position.x, + y = position.y; + + // Snap to grid if prop has been provided + + if (Array.isArray(_this.props.grid)) { + var _deltaX = x - _this.state.lastX, + _deltaY = y - _this.state.lastY; + + var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, _deltaX, _deltaY); + + var _snapToGrid2 = _slicedToArray(_snapToGrid, 2); + + _deltaX = _snapToGrid2[0]; + _deltaY = _snapToGrid2[1]; + + if (!_deltaX && !_deltaY) return; // skip useless drag + x = _this.state.lastX + _deltaX, y = _this.state.lastY + _deltaY; + } + + var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); + + (0, _log2.default)('DraggableCore: handleDrag: %j', coreEvent); + + // Call event handler. If it returns explicit false, trigger end. + var shouldUpdate = _this.props.onDrag(e, coreEvent); + if (shouldUpdate === false) { + try { + // $FlowIgnore + _this.handleDragStop(new MouseEvent('mouseup')); + } catch (err) { + // Old browsers + var event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/); + // I see why this insanity was deprecated + // $FlowIgnore + event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + _this.handleDragStop(event); + } + return; + } + + _this.setState({ + lastX: x, + lastY: y + }); + }, _this.handleDragStop = function (e) { + if (!_this.state.dragging) return; + + var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); + if (position == null) return; + var x = position.x, + y = position.y; + + var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); + var thisNode = _reactDom2.default.findDOMNode(_this); + if (thisNode) { + // Remove user-select hack + if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument.body); + } + + (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); + + // Reset the el. + _this.setState({ + dragging: false, + lastX: NaN, + lastY: NaN + }); + + // Call event handler + _this.props.onStop(e, coreEvent); + + if (thisNode) { + // Remove event handlers + (0, _log2.default)('DraggableCore: Removing handlers'); + (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag); + (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop); + } + }, _this.onMouseDown = function (e) { + dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse + + return _this.handleDragStart(e); + }, _this.onMouseUp = function (e) { + dragEventFor = eventsFor.mouse; + + return _this.handleDragStop(e); + }, _this.onTouchStart = function (e) { + // We're on a touch device now, so change the event handlers + dragEventFor = eventsFor.touch; + + return _this.handleDragStart(e); + }, _this.onTouchEnd = function (e) { + // We're on a touch device now, so change the event handlers + dragEventFor = eventsFor.touch; + + return _this.handleDragStop(e); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(DraggableCore, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + // Remove any leftover event handlers. Remove both touch and mouse handlers in case + // some browser quirk caused a touch event to fire during a mouse move, or vice versa. + var thisNode = _reactDom2.default.findDOMNode(this); + if (thisNode) { + var ownerDocument = thisNode.ownerDocument; + + (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag); + (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag); + (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); + (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop); + if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument.body); + } + } + + // Same as onMouseDown (start drag), but now consider this a touch device. + + }, { + key: 'render', + value: function render() { + // Reuse the child provided + // This makes it flexible to use whatever element is wanted (div, ul, etc) + return React.cloneElement(React.Children.only(this.props.children), { + style: (0, _domFns.styleHacks)(this.props.children.props.style), + + // Note: mouseMove handler is attached to document so it will still function + // when the user drags quickly and leaves the bounds of the element. + onMouseDown: this.onMouseDown, + onTouchStart: this.onTouchStart, + onMouseUp: this.onMouseUp, + onTouchEnd: this.onTouchEnd + }); + } + }]); + + return DraggableCore; +}(React.Component); + +DraggableCore.displayName = 'DraggableCore'; +DraggableCore.propTypes = { + /** + * `allowAnyClick` allows dragging using any mouse button. + * By default, we only accept the left button. + * + * Defaults to `false`. + */ + allowAnyClick: _propTypes2.default.bool, + + /** + * `disabled`, if true, stops the from dragging. All handlers, + * with the exception of `onMouseDown`, will not fire. + */ + disabled: _propTypes2.default.bool, + + /** + * By default, we add 'user-select:none' attributes to the document body + * to prevent ugly text selection during drag. If this is causing problems + * for your app, set this to `false`. + */ + enableUserSelectHack: _propTypes2.default.bool, + + /** + * `offsetParent`, if set, uses the passed DOM node to compute drag offsets + * instead of using the parent node. + */ + offsetParent: function offsetParent(props, propName) { + if (process.browser && props[propName] && props[propName].nodeType !== 1) { + throw new Error('Draggable\'s offsetParent must be a DOM Node.'); + } + }, + + /** + * `grid` specifies the x and y that dragging should snap to. + */ + grid: _propTypes2.default.arrayOf(_propTypes2.default.number), + + /** + * `handle` specifies a selector to be used as the handle that initiates drag. + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return ( + * + *
+ *
Click me to drag
+ *
This is some other content
+ *
+ *
+ * ); + * } + * }); + * ``` + */ + handle: _propTypes2.default.string, + + /** + * `cancel` specifies a selector to be used to prevent drag initialization. + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return( + * + *
+ *
You can't drag from here
+ *
Dragging here works fine
+ *
+ *
+ * ); + * } + * }); + * ``` + */ + cancel: _propTypes2.default.string, + + /** + * Called when dragging starts. + * If this function returns the boolean false, dragging will be canceled. + */ + onStart: _propTypes2.default.func, + + /** + * Called while dragging. + * If this function returns the boolean false, dragging will be canceled. + */ + onDrag: _propTypes2.default.func, + + /** + * Called when dragging stops. + * If this function returns the boolean false, the drag will remain active. + */ + onStop: _propTypes2.default.func, + + /** + * A workaround option which can be passed if onMouseDown needs to be accessed, + * since it'll always be blocked (as there is internal use of onMouseDown) + */ + onMouseDown: _propTypes2.default.func, + + /** + * These properties should be defined on the child, not here. + */ + className: _shims.dontSetMe, + style: _shims.dontSetMe, + transform: _shims.dontSetMe +}; +DraggableCore.defaultProps = { + allowAnyClick: false, // by default only accept left click + cancel: null, + disabled: false, + enableUserSelectHack: true, + offsetParent: null, + handle: null, + grid: null, + transform: null, + onStart: function onStart() {}, + onDrag: function onDrag() {}, + onStop: function onStop() {}, + onMouseDown: function onMouseDown() {} +}; +exports.default = DraggableCore; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(19))) + +/***/ }), /* 11 */ -/***/ function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; - module.exports = __WEBPACK_EXTERNAL_MODULE_11__; -/***/ }, +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = log; + +/*eslint no-console:0*/ +function log() { + var _console; + + if (undefined) (_console = console).log.apply(_console, arguments); +} + +/***/ }), /* 12 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - Copyright (c) 2016 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames - */ - /* global define */ - - (function () { - 'use strict'; - - var hasOwn = {}.hasOwnProperty; - - function classNames () { - var classes = []; - - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (!arg) continue; - - var argType = typeof arg; - - if (argType === 'string' || argType === 'number') { - classes.push(arg); - } else if (Array.isArray(arg)) { - classes.push(classNames.apply(null, arg)); - } else if (argType === 'object') { - for (var key in arg) { - if (hasOwn.call(arg, key) && arg[key]) { - classes.push(key); - } - } - } - } - - return classes.join(' '); - } - - if (typeof module !== 'undefined' && module.exports) { - module.exports = classNames; - } else if (true) { - // register as 'classnames', consistent with npm package name - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { - return classNames; - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else { - window.classNames = classNames; - } - }()); +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; -/***/ }, +module.exports = __webpack_require__(13).default; +module.exports.DraggableCore = __webpack_require__(10).default; + +/***/ }), /* 13 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - exports.matchesSelector = matchesSelector; - exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo; - exports.addEvent = addEvent; - exports.removeEvent = removeEvent; - exports.outerHeight = outerHeight; - exports.outerWidth = outerWidth; - exports.innerHeight = innerHeight; - exports.innerWidth = innerWidth; - exports.offsetXYFromParent = offsetXYFromParent; - exports.createCSSTransform = createCSSTransform; - exports.createSVGTransform = createSVGTransform; - exports.getTouch = getTouch; - exports.getTouchIdentifier = getTouchIdentifier; - exports.addUserSelectStyles = addUserSelectStyles; - exports.removeUserSelectStyles = removeUserSelectStyles; - exports.styleHacks = styleHacks; - - var _shims = __webpack_require__(14); - - var _getPrefix = __webpack_require__(15); - - var _getPrefix2 = _interopRequireDefault(_getPrefix); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - - /*:: import type {ControlPosition} from './types';*/ - - - var matchesSelectorFunc = ''; - function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/ { - if (!matchesSelectorFunc) { - matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) { - // $FlowIgnore: Doesn't think elements are indexable - return (0, _shims.isFunction)(el[method]); - }); - } - - // $FlowIgnore: Doesn't think elements are indexable - return el[matchesSelectorFunc].call(el, selector); - } - - // Works up the tree to the draggable itself attempting to match selector. - function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/ { - var node = el; - do { - if (matchesSelector(node, selector)) return true; - if (node === baseNode) return false; - node = node.parentNode; - } while (node); - - return false; - } - - function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { - if (!el) { - return; - } - if (el.attachEvent) { - el.attachEvent('on' + event, handler); - } else if (el.addEventListener) { - el.addEventListener(event, handler, true); - } else { - // $FlowIgnore: Doesn't think elements are indexable - el['on' + event] = handler; - } - } - - function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { - if (!el) { - return; - } - if (el.detachEvent) { - el.detachEvent('on' + event, handler); - } else if (el.removeEventListener) { - el.removeEventListener(event, handler, true); - } else { - // $FlowIgnore: Doesn't think elements are indexable - el['on' + event] = null; - } - } - - function outerHeight(node /*: HTMLElement*/) /*: number*/ { - // This is deliberately excluding margin for our calculations, since we are using - // offsetTop which is including margin. See getBoundPosition - var height = node.clientHeight; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - height += (0, _shims.int)(computedStyle.borderTopWidth); - height += (0, _shims.int)(computedStyle.borderBottomWidth); - return height; - } - - function outerWidth(node /*: HTMLElement*/) /*: number*/ { - // This is deliberately excluding margin for our calculations, since we are using - // offsetLeft which is including margin. See getBoundPosition - var width = node.clientWidth; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - width += (0, _shims.int)(computedStyle.borderLeftWidth); - width += (0, _shims.int)(computedStyle.borderRightWidth); - return width; - } - function innerHeight(node /*: HTMLElement*/) /*: number*/ { - var height = node.clientHeight; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - height -= (0, _shims.int)(computedStyle.paddingTop); - height -= (0, _shims.int)(computedStyle.paddingBottom); - return height; - } - - function innerWidth(node /*: HTMLElement*/) /*: number*/ { - var width = node.clientWidth; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - width -= (0, _shims.int)(computedStyle.paddingLeft); - width -= (0, _shims.int)(computedStyle.paddingRight); - return width; - } - - // Get from offsetParent - function offsetXYFromParent(evt /*: {clientX: number, clientY: number}*/, offsetParent /*: HTMLElement*/) /*: ControlPosition*/ { - var isBody = offsetParent === offsetParent.ownerDocument.body; - var offsetParentRect = isBody ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); - - var x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; - var y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; - - return { x: x, y: y }; - } - - function createCSSTransform(_ref) /*: Object*/ { - var x = _ref.x, - y = _ref.y; - - // Replace unitless items with px - return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix2.default), 'translate(' + x + 'px,' + y + 'px)'); - } - - function createSVGTransform(_ref3) /*: string*/ { - var x = _ref3.x, - y = _ref3.y; - - return 'translate(' + x + ',' + y + ')'; - } - - function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { - return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) { - return identifier === t.identifier; - }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) { - return identifier === t.identifier; - }); - } - - function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/ { - if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; - if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; - } - - // User-select Hacks: - // - // Useful for preventing blue highlights all over everything when dragging. - var userSelectPrefix = (0, _getPrefix.getPrefix)('user-select'); - var userSelect = (0, _getPrefix.browserPrefixToStyle)('user-select', userSelectPrefix); - var userSelectStyle = ';' + userSelect + ': none;'; - var userSelectReplaceRegExp = new RegExp(';?' + userSelect + ': none;'); // leading ; not present on IE - - // Note we're passing `document` b/c we could be iframed - function addUserSelectStyles(body /*: HTMLElement*/) { - var style = body.getAttribute('style') || ''; - if (userSelectReplaceRegExp.test(style)) return; // don't add twice - body.setAttribute('style', style + userSelectStyle); - } - - function removeUserSelectStyles(body /*: HTMLElement*/) { - var style = body.getAttribute('style') || ''; - body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); - } - - function styleHacks() /*: Object*/ { - var childStyle /*: Object*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - // Workaround IE pointer events; see #51 - // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 - return _extends({ - touchAction: 'none' - }, childStyle); - } +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__(6); + +var React = _interopRequireWildcard(_react); + +var _propTypes = __webpack_require__(7); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDom = __webpack_require__(4); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _classnames = __webpack_require__(17); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _domFns = __webpack_require__(5); + +var _positionFns = __webpack_require__(9); + +var _shims = __webpack_require__(0); + +var _DraggableCore = __webpack_require__(10); + +var _DraggableCore2 = _interopRequireDefault(_DraggableCore); + +var _log = __webpack_require__(11); + +var _log2 = _interopRequireDefault(_log); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +// $FlowIgnore + + +/*:: import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';*/ +/*:: import type {DraggableEventHandler} from './utils/types';*/ +/*:: type DraggableState = { + dragging: boolean, + dragged: boolean, + x: number, y: number, + slackX: number, slackY: number, + isElementSVG: boolean +};*/ + + +// +// Define +// + +/*:: export type DraggableProps = { + ...$Exact, + axis: 'both' | 'x' | 'y' | 'none', + bounds: DraggableBounds | string | false, + defaultClassName: string, + defaultClassNameDragging: string, + defaultClassNameDragged: string, + defaultPosition: ControlPosition, + position: ControlPosition, +};*/ + +var Draggable = function (_React$Component) { + _inherits(Draggable, _React$Component); + + function Draggable(props /*: DraggableProps*/) { + _classCallCheck(this, Draggable); + + var _this = _possibleConstructorReturn(this, (Draggable.__proto__ || Object.getPrototypeOf(Draggable)).call(this, props)); + + _this.onDragStart = function (e, coreData) { + (0, _log2.default)('Draggable: onDragStart: %j', coreData); + + // Short-circuit if user's callback killed it. + var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_this, coreData)); + // Kills start event on core as well, so move handlers are never bound. + if (shouldStart === false) return false; + + _this.setState({ dragging: true, dragged: true }); + }; + + _this.onDrag = function (e, coreData) { + if (!_this.state.dragging) return false; + (0, _log2.default)('Draggable: onDrag: %j', coreData); + + var uiData = (0, _positionFns.createDraggableData)(_this, coreData); + + var newState /*: $Shape*/ = { + x: uiData.x, + y: uiData.y + }; + + // Keep within bounds. + if (_this.props.bounds) { + // Save original x and y. + var _x = newState.x, + _y = newState.y; + + // Add slack to the values used to calculate bound position. This will ensure that if + // we start removing slack, the element won't react to it right away until it's been + // completely removed. + + newState.x += _this.state.slackX; + newState.y += _this.state.slackY; + + // Get bound position. This will ceil/floor the x and y within the boundaries. + // $FlowBug + + // Recalculate slack by noting how much was shaved by the boundPosition handler. + var _getBoundPosition = (0, _positionFns.getBoundPosition)(_this, newState.x, newState.y); -/***/ }, + var _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2); + + newState.x = _getBoundPosition2[0]; + newState.y = _getBoundPosition2[1]; + newState.slackX = _this.state.slackX + (_x - newState.x); + newState.slackY = _this.state.slackY + (_y - newState.y); + + // Update the event we fire to reflect what really happened after bounds took effect. + uiData.x = _x; + uiData.y = _y; + uiData.deltaX = newState.x - _this.state.x; + uiData.deltaY = newState.y - _this.state.y; + } + + // Short-circuit if user's callback killed it. + var shouldUpdate = _this.props.onDrag(e, uiData); + if (shouldUpdate === false) return false; + + _this.setState(newState); + }; + + _this.onDragStop = function (e, coreData) { + if (!_this.state.dragging) return false; + + // Short-circuit if user's callback killed it. + var shouldStop = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_this, coreData)); + if (shouldStop === false) return false; + + (0, _log2.default)('Draggable: onDragStop: %j', coreData); + + var newState /*: $Shape*/ = { + dragging: false, + slackX: 0, + slackY: 0 + }; + + // If this is a controlled component, the result of this operation will be to + // revert back to the old position. We expect a handler on `onDragStop`, at the least. + var controlled = Boolean(_this.props.position); + if (controlled) { + var _this$props$position = _this.props.position, + _x2 = _this$props$position.x, + _y2 = _this$props$position.y; + + newState.x = _x2; + newState.y = _y2; + } + + _this.setState(newState); + }; + + _this.state = { + // Whether or not we are currently dragging. + dragging: false, + + // Whether or not we have been dragged before. + dragged: false, + + // Current transform x and y. + x: props.position ? props.position.x : props.defaultPosition.x, + y: props.position ? props.position.y : props.defaultPosition.y, + + // Used for compensating for out-of-bounds drags + slackX: 0, slackY: 0, + + // Can only determine if SVG after mounting + isElementSVG: false + }; + return _this; + } + + _createClass(Draggable, [{ + key: 'componentWillMount', + value: function componentWillMount() { + if (this.props.position && !(this.props.onDrag || this.props.onStop)) { + // eslint-disable-next-line + console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); + } + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + // Check to see if the element passed is an instanceof SVGElement + if (typeof SVGElement !== 'undefined' && _reactDom2.default.findDOMNode(this) instanceof SVGElement) { + this.setState({ isElementSVG: true }); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps /*: Object*/) { + // Set x/y if position has changed + if (nextProps.position && (!this.props.position || nextProps.position.x !== this.props.position.x || nextProps.position.y !== this.props.position.y)) { + this.setState({ x: nextProps.position.x, y: nextProps.position.y }); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.setState({ dragging: false }); // prevents invariant if unmounted while dragging + } + }, { + key: 'render', + value: function render() /*: React.Element*/ { + var _classNames; + + var style = {}, + svgTransform = null; + + // If this is controlled, we don't want to move it - unless it's dragging. + var controlled = Boolean(this.props.position); + var draggable = !controlled || this.state.dragging; + + var position = this.props.position || this.props.defaultPosition; + var transformOpts = { + // Set left if horizontal drag is enabled + x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : position.x, + + // Set top if vertical drag is enabled + y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : position.y + }; + + // If this element was SVG, we use the `transform` attribute. + if (this.state.isElementSVG) { + svgTransform = (0, _domFns.createSVGTransform)(transformOpts); + } else { + // Add a CSS transform to move the element around. This allows us to move the element around + // without worrying about whether or not it is relatively or absolutely positioned. + // If the item you are dragging already has a transform set, wrap it in a so + // has a clean slate. + style = (0, _domFns.createCSSTransform)(transformOpts); + } + + var _props = this.props, + defaultClassName = _props.defaultClassName, + defaultClassNameDragging = _props.defaultClassNameDragging, + defaultClassNameDragged = _props.defaultClassNameDragged; + + // Mark with class while dragging + + var className = (0, _classnames2.default)(this.props.children.props.className || '', defaultClassName, (_classNames = {}, _defineProperty(_classNames, defaultClassNameDragging, this.state.dragging), _defineProperty(_classNames, defaultClassNameDragged, this.state.dragged), _classNames)); + + // Reuse the child provided + // This makes it flexible to use whatever element is wanted (div, ul, etc) + return React.createElement( + _DraggableCore2.default, + _extends({}, this.props, { onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop }), + React.cloneElement(React.Children.only(this.props.children), { + className: className, + style: _extends({}, this.props.children.props.style, style), + transform: svgTransform + }) + ); + } + }]); + + return Draggable; +}(React.Component); + +Draggable.displayName = 'Draggable'; +Draggable.propTypes = _extends({}, _DraggableCore2.default.propTypes, { + + /** + * `axis` determines which axis the draggable can move. + * + * Note that all callbacks will still return data as normal. This only + * controls flushing to the DOM. + * + * 'both' allows movement horizontally and vertically. + * 'x' limits movement to horizontal axis. + * 'y' limits movement to vertical axis. + * 'none' limits all movement. + * + * Defaults to 'both'. + */ + axis: _propTypes2.default.oneOf(['both', 'x', 'y', 'none']), + + /** + * `bounds` determines the range of movement available to the element. + * Available values are: + * + * 'parent' restricts movement within the Draggable's parent node. + * + * Alternatively, pass an object with the following properties, all of which are optional: + * + * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND} + * + * All values are in px. + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return ( + * + *
Content
+ *
+ * ); + * } + * }); + * ``` + */ + bounds: _propTypes2.default.oneOfType([_propTypes2.default.shape({ + left: _propTypes2.default.number, + right: _propTypes2.default.number, + top: _propTypes2.default.number, + bottom: _propTypes2.default.number + }), _propTypes2.default.string, _propTypes2.default.oneOf([false])]), + + defaultClassName: _propTypes2.default.string, + defaultClassNameDragging: _propTypes2.default.string, + defaultClassNameDragged: _propTypes2.default.string, + + /** + * `defaultPosition` specifies the x and y that the dragged item should start at + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return ( + * + *
I start with transformX: 25px and transformY: 25px;
+ *
+ * ); + * } + * }); + * ``` + */ + defaultPosition: _propTypes2.default.shape({ + x: _propTypes2.default.number, + y: _propTypes2.default.number + }), + + /** + * `position`, if present, defines the current position of the element. + * + * This is similar to how form elements in React work - if no `position` is supplied, the component + * is uncontrolled. + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return ( + * + *
I start with transformX: 25px and transformY: 25px;
+ *
+ * ); + * } + * }); + * ``` + */ + position: _propTypes2.default.shape({ + x: _propTypes2.default.number, + y: _propTypes2.default.number + }), + + /** + * These properties should be defined on the child, not here. + */ + className: _shims.dontSetMe, + style: _shims.dontSetMe, + transform: _shims.dontSetMe +}); +Draggable.defaultProps = _extends({}, _DraggableCore2.default.defaultProps, { + axis: 'both', + bounds: false, + defaultClassName: 'react-draggable', + defaultClassNameDragging: 'react-draggable-dragging', + defaultClassNameDragged: 'react-draggable-dragged', + defaultPosition: { x: 0, y: 0 }, + position: null +}); +exports.default = Draggable; + +/***/ }), /* 14 */ -/***/ function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.findInArray = findInArray; - exports.isFunction = isFunction; - exports.isNum = isNum; - exports.int = int; - exports.dontSetMe = dontSetMe; - - // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc - function findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/ { - for (var i = 0, length = array.length; i < length; i++) { - if (callback.apply(callback, [array[i], i, array])) return array[i]; - } - } - - function isFunction(func /*: any*/) /*: boolean*/ { - return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; - } - - function isNum(num /*: any*/) /*: boolean*/ { - return typeof num === 'number' && !isNaN(num); - } - - function int(a /*: string*/) /*: number*/ { - return parseInt(a, 10); - } - - function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) { - if (props[propName]) { - return new Error('Invalid prop ' + propName + ' passed to ' + componentName + ' - do not set this, set it on the child.'); - } - } +"use strict"; +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + + +var emptyFunction = __webpack_require__(1); +var invariant = __webpack_require__(2); +var warning = __webpack_require__(8); + +var ReactPropTypesSecret = __webpack_require__(3); +var checkPropTypes = __webpack_require__(15); + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + } else if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + warning( + false, + 'You are manually calling a React.PropTypes validation ' + + 'function for the `%s` prop on `%s`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', + propFullName, + componentName + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); -/***/ }, + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + warning( + false, + 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + + 'received %s at index %s.', + getPostfixForTypeWarning(checker), + i + ); + return emptyFunction.thatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + + +/***/ }), /* 15 */ -/***/ function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.getPrefix = getPrefix; - exports.browserPrefixToKey = browserPrefixToKey; - exports.browserPrefixToStyle = browserPrefixToStyle; - var prefixes = ['Moz', 'Webkit', 'O', 'ms']; - function getPrefix() /*: string*/ { - var prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform'; - - // Checking specifically for 'window.document' is for pseudo-browser server-side - // environments that define 'window' as the global context. - // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84) - if (typeof window === 'undefined' || typeof window.document === 'undefined') return ''; - - var style = window.document.documentElement.style; - - if (prop in style) return ''; - - for (var i = 0; i < prefixes.length; i++) { - if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i]; - } - - return ''; - } - - function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/ { - return prefix ? '' + prefix + kebabToTitleCase(prop) : prop; - } - - function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/ { - return prefix ? '-' + prefix.toLowerCase() + '-' + prop : prop; - } - - function kebabToTitleCase(str /*: string*/) /*: string*/ { - var out = ''; - var shouldCapitalize = true; - for (var i = 0; i < str.length; i++) { - if (shouldCapitalize) { - out += str[i].toUpperCase(); - shouldCapitalize = false; - } else if (str[i] === '-') { - shouldCapitalize = true; - } else { - out += str[i]; - } - } - return out; - } - - // Default export is the prefix itself, like 'Moz', 'Webkit', etc - // Note that you may have to re-test for certain things; for instance, Chrome 50 - // can handle unprefixed `transform`, but not unprefixed `user-select` - exports.default = getPrefix(); -/***/ }, +if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + var invariant = __webpack_require__(2); + var warning = __webpack_require__(8); + var ReactPropTypesSecret = __webpack_require__(3); + var loggedTypeFailures = {}; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (typeSpecs.hasOwnProperty(typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); + } + } + } + } +} + +module.exports = checkPropTypes; + + +/***/ }), /* 16 */ -/***/ function(module, exports, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + +var emptyFunction = __webpack_require__(1); +var invariant = __webpack_require__(2); +var ReactPropTypesSecret = __webpack_require__(3); + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim + }; + + ReactPropTypes.checkPropTypes = emptyFunction; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.getBoundPosition = getBoundPosition; - exports.snapToGrid = snapToGrid; - exports.canDragX = canDragX; - exports.canDragY = canDragY; - exports.getControlPosition = getControlPosition; - exports.createCoreData = createCoreData; - exports.createDraggableData = createDraggableData; - - var _shims = __webpack_require__(14); - - var _reactDom = __webpack_require__(11); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _domFns = __webpack_require__(13); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /*:: import type Draggable from '../Draggable';*/ - /*:: import type {Bounds, ControlPosition, DraggableData} from './types';*/ - /*:: import type DraggableCore from '../DraggableCore';*/ - function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/ { - // If no bounds, short-circuit and move on - if (!draggable.props.bounds) return [x, y]; - - // Clone new bounds - var bounds = draggable.props.bounds; - - bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds); - var node = _reactDom2.default.findDOMNode(draggable); - - if (typeof bounds === 'string') { - var ownerDocument = node.ownerDocument; - - var ownerWindow = ownerDocument.defaultView; - var boundNode = void 0; - if (bounds === 'parent') { - boundNode = node.parentNode; - } else { - boundNode = ownerDocument.querySelector(bounds); - if (!boundNode) throw new Error('Bounds selector "' + bounds + '" could not find an element.'); - } - var nodeStyle = ownerWindow.getComputedStyle(node); - var boundNodeStyle = ownerWindow.getComputedStyle(boundNode); - // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. - bounds = { - left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft), - top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop), - right: (0, _domFns.innerWidth)(boundNode) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight), - bottom: (0, _domFns.innerHeight)(boundNode) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom) - }; - } - - // Keep x and y below right and bottom limits... - if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right); - if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); - - // But above left and top limits. - if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left); - if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top); - - return [x, y]; - } - - function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/ { - var x = Math.round(pendingX / grid[0]) * grid[0]; - var y = Math.round(pendingY / grid[1]) * grid[1]; - return [x, y]; - } - - function canDragX(draggable /*: Draggable*/) /*: boolean*/ { - return draggable.props.axis === 'both' || draggable.props.axis === 'x'; - } - - function canDragY(draggable /*: Draggable*/) /*: boolean*/ { - return draggable.props.axis === 'both' || draggable.props.axis === 'y'; - } - - // Get {x, y} positions from event. - function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { - var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null; - if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch - var node = _reactDom2.default.findDOMNode(draggableCore); - // User can provide an offsetParent if desired. - var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body; - return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent); - } - - // Create an data object exposed by 's events - function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/ { - var state = draggable.state; - var isStart = !(0, _shims.isNum)(state.lastX); - - if (isStart) { - // If this is our first move, use the x and y as last coords. - return { - node: _reactDom2.default.findDOMNode(draggable), - deltaX: 0, deltaY: 0, - lastX: x, lastY: y, - x: x, y: y - }; - } else { - // Otherwise calculate proper values. - return { - node: _reactDom2.default.findDOMNode(draggable), - deltaX: x - state.lastX, deltaY: y - state.lastY, - lastX: state.lastX, lastY: state.lastY, - x: x, y: y - }; - } - } - - // Create an data exposed by 's events - function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/ { - return { - node: coreData.node, - x: draggable.state.x + coreData.deltaX, - y: draggable.state.y + coreData.deltaY, - deltaX: coreData.deltaX, - deltaY: coreData.deltaY, - lastX: draggable.state.x, - lastY: draggable.state.y - }; + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg)) { + classes.push(classNames.apply(null, arg)); + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); } - - // A lot faster than stringify/parse - function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/ { - return { - left: bounds.left, - top: bounds.top, - right: bounds.right, - bottom: bounds.bottom - }; + + if (typeof module !== 'undefined' && module.exports) { + module.exports = classNames; + } else if (true) { + // register as 'classnames', consistent with npm package name + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { + return classNames; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + window.classNames = classNames; } +}()); -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - var _react = __webpack_require__(2); - - var _react2 = _interopRequireDefault(_react); - - var _propTypes = __webpack_require__(3); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _reactDom = __webpack_require__(11); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _domFns = __webpack_require__(13); - - var _positionFns = __webpack_require__(16); - - var _shims = __webpack_require__(14); - - var _log = __webpack_require__(19); - - var _log2 = _interopRequireDefault(_log); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - // Simple abstraction for dragging events names. - /*:: import type {EventHandler} from './utils/types';*/ - var eventsFor = { - touch: { - start: 'touchstart', - move: 'touchmove', - stop: 'touchend' - }, - mouse: { - start: 'mousedown', - move: 'mousemove', - stop: 'mouseup' - } - }; - - // Default to mouse events. - var dragEventFor = eventsFor.mouse; - - // - // Define . - // - // is for advanced usage of . It maintains minimal internal state so it can - // work well with libraries that require more control over the element. - // - - /*:: type CoreState = { - dragging: boolean, - lastX: number, - lastY: number, - touchIdentifier: ?number - };*/ - - var DraggableCore = function (_React$Component) { - _inherits(DraggableCore, _React$Component); - - function DraggableCore() { - var _ref; - - var _temp, _this, _ret; - - _classCallCheck(this, DraggableCore); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = DraggableCore.__proto__ || Object.getPrototypeOf(DraggableCore)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - dragging: false, - // Used while dragging to determine deltas. - lastX: NaN, lastY: NaN, - touchIdentifier: null - }, _this.handleDragStart = function (e) { - // Make it possible to attach event handlers on top of this one. - _this.props.onMouseDown(e); - - // Only accept left-clicks. - if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; - - // Get nodes. Be sure to grab relative document (could be iframed) - var domNode = _reactDom2.default.findDOMNode(_this); - var ownerDocument = domNode.ownerDocument; - - // Short circuit if handle or cancel prop was provided and selector doesn't match. - - if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, domNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, domNode)) { - return; - } - - // Set touch identifier in component state if this is a touch event. This allows us to - // distinguish between individual touches on multitouch screens by identifying which - // touchpoint was set to this element. - var touchIdentifier = (0, _domFns.getTouchIdentifier)(e); - _this.setState({ touchIdentifier: touchIdentifier }); - - // Get the current drag point from the event. This is used as the offset. - var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _this); - if (position == null) return; // not possible but satisfies flow - var x = position.x, - y = position.y; - - // Create an event object with all the data parents need to make a decision here. - - var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - - (0, _log2.default)('DraggableCore: handleDragStart: %j', coreEvent); - - // Call event handler. If it returns explicit false, cancel. - (0, _log2.default)('calling', _this.props.onStart); - var shouldUpdate = _this.props.onStart(e, coreEvent); - if (shouldUpdate === false) return; - - // Add a style to the body to disable user-select. This prevents text from - // being selected all over the page. - if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument.body); - - // Initiate dragging. Set the current x and y as offsets - // so we know how much we've moved during the drag. This allows us - // to drag elements around even if they have been moved, without issue. - _this.setState({ - dragging: true, - - lastX: x, - lastY: y - }); - - // Add events to the document directly so we catch when the user's mouse/touch moves outside of - // this element. We use different events depending on whether or not we have detected that this - // is a touch-capable device. - (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag); - (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop); - }, _this.handleDrag = function (e) { - - // Prevent scrolling on mobile devices, like ipad/iphone. - if (e.type === 'touchmove') e.preventDefault(); - - // Get the current drag point from the event. This is used as the offset. - var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); - if (position == null) return; - var x = position.x, - y = position.y; - - // Snap to grid if prop has been provided - - if (Array.isArray(_this.props.grid)) { - var deltaX = x - _this.state.lastX, - deltaY = y - _this.state.lastY; - - var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY); - - var _snapToGrid2 = _slicedToArray(_snapToGrid, 2); - - deltaX = _snapToGrid2[0]; - deltaY = _snapToGrid2[1]; - - if (!deltaX && !deltaY) return; // skip useless drag - x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY; - } - - var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - - (0, _log2.default)('DraggableCore: handleDrag: %j', coreEvent); - - // Call event handler. If it returns explicit false, trigger end. - var shouldUpdate = _this.props.onDrag(e, coreEvent); - if (shouldUpdate === false) { - try { - // $FlowIgnore - _this.handleDragStop(new MouseEvent('mouseup')); - } catch (err) { - // Old browsers - var event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/); - // I see why this insanity was deprecated - // $FlowIgnore - event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); - _this.handleDragStop(event); - } - return; - } - - _this.setState({ - lastX: x, - lastY: y - }); - }, _this.handleDragStop = function (e) { - if (!_this.state.dragging) return; - - var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); - if (position == null) return; - var x = position.x, - y = position.y; - - var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - - var _ReactDOM$findDOMNode = _reactDom2.default.findDOMNode(_this), - ownerDocument = _ReactDOM$findDOMNode.ownerDocument; - - // Remove user-select hack - - - if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument.body); - - (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); - - // Reset the el. - _this.setState({ - dragging: false, - lastX: NaN, - lastY: NaN - }); - - // Call event handler - _this.props.onStop(e, coreEvent); - - // Remove event handlers - (0, _log2.default)('DraggableCore: Removing handlers'); - (0, _domFns.removeEvent)(ownerDocument, dragEventFor.move, _this.handleDrag); - (0, _domFns.removeEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop); - }, _this.onMouseDown = function (e) { - dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse - - return _this.handleDragStart(e); - }, _this.onMouseUp = function (e) { - dragEventFor = eventsFor.mouse; - - return _this.handleDragStop(e); - }, _this.onTouchStart = function (e) { - // We're on a touch device now, so change the event handlers - dragEventFor = eventsFor.touch; - - return _this.handleDragStart(e); - }, _this.onTouchEnd = function (e) { - // We're on a touch device now, so change the event handlers - dragEventFor = eventsFor.touch; - - return _this.handleDragStop(e); - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - _createClass(DraggableCore, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - // Remove any leftover event handlers. Remove both touch and mouse handlers in case - // some browser quirk caused a touch event to fire during a mouse move, or vice versa. - var _ReactDOM$findDOMNode2 = _reactDom2.default.findDOMNode(this), - ownerDocument = _ReactDOM$findDOMNode2.ownerDocument; - - (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag); - (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag); - (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); - (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop); - if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument.body); - } - - // Same as onMouseDown (start drag), but now consider this a touch device. - - }, { - key: 'render', - value: function render() /*: React.Element*/ { - // Reuse the child provided - // This makes it flexible to use whatever element is wanted (div, ul, etc) - return _react2.default.cloneElement(_react2.default.Children.only(this.props.children), { - style: (0, _domFns.styleHacks)(this.props.children.props.style), - - // Note: mouseMove handler is attached to document so it will still function - // when the user drags quickly and leaves the bounds of the element. - onMouseDown: this.onMouseDown, - onTouchStart: this.onTouchStart, - onMouseUp: this.onMouseUp, - onTouchEnd: this.onTouchEnd - }); - } - }]); - - return DraggableCore; - }(_react2.default.Component); - - DraggableCore.displayName = 'DraggableCore'; - DraggableCore.propTypes = { - /** - * `allowAnyClick` allows dragging using any mouse button. - * By default, we only accept the left button. - * - * Defaults to `false`. - */ - allowAnyClick: _propTypes2.default.bool, - - /** - * `disabled`, if true, stops the from dragging. All handlers, - * with the exception of `onMouseDown`, will not fire. - */ - disabled: _propTypes2.default.bool, - - /** - * By default, we add 'user-select:none' attributes to the document body - * to prevent ugly text selection during drag. If this is causing problems - * for your app, set this to `false`. - */ - enableUserSelectHack: _propTypes2.default.bool, - - /** - * `offsetParent`, if set, uses the passed DOM node to compute drag offsets - * instead of using the parent node. - */ - offsetParent: function offsetParent(props, propName) { - if (process.browser && props[propName] && props[propName].nodeType !== 1) { - throw new Error('Draggable\'s offsetParent must be a DOM Node.'); - } - }, - - /** - * `grid` specifies the x and y that dragging should snap to. - */ - grid: _propTypes2.default.arrayOf(_propTypes2.default.number), - - /** - * `handle` specifies a selector to be used as the handle that initiates drag. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
- *
Click me to drag
- *
This is some other content
- *
- *
- * ); - * } - * }); - * ``` - */ - handle: _propTypes2.default.string, - - /** - * `cancel` specifies a selector to be used to prevent drag initialization. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return( - * - *
- *
You can't drag from here
- *
Dragging here works fine
- *
- *
- * ); - * } - * }); - * ``` - */ - cancel: _propTypes2.default.string, - - /** - * Called when dragging starts. - * If this function returns the boolean false, dragging will be canceled. - */ - onStart: _propTypes2.default.func, - - /** - * Called while dragging. - * If this function returns the boolean false, dragging will be canceled. - */ - onDrag: _propTypes2.default.func, - - /** - * Called when dragging stops. - * If this function returns the boolean false, the drag will remain active. - */ - onStop: _propTypes2.default.func, - - /** - * A workaround option which can be passed if onMouseDown needs to be accessed, - * since it'll always be blocked (as there is internal use of onMouseDown) - */ - onMouseDown: _propTypes2.default.func, - - /** - * These properties should be defined on the child, not here. - */ - className: _shims.dontSetMe, - style: _shims.dontSetMe, - transform: _shims.dontSetMe - }; - DraggableCore.defaultProps = { - allowAnyClick: false, // by default only accept left click - cancel: null, - disabled: false, - enableUserSelectHack: true, - offsetParent: null, - handle: null, - grid: null, - transform: null, - onStart: function onStart() {}, - onDrag: function onDrag() {}, - onStop: function onStop() {}, - onMouseDown: function onMouseDown() {} - }; - exports.default = DraggableCore; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(18))) - -/***/ }, + +/***/ }), /* 18 */ -/***/ function(module, exports) { - - // shim for using process in browser - var process = module.exports = {}; - - // cached from whatever global is present so that test runners that stub it - // don't break things. But we need to wrap it in a try catch in case it is - // wrapped in strict mode code which doesn't define any globals. It's inside a - // function because try/catches deoptimize in certain engines. - - var cachedSetTimeout; - var cachedClearTimeout; - - function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); - } - function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); - } - (function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } - } ()) - function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - - } - function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - - } - var queue = []; - var draining = false; - var currentQueue; - var queueIndex = -1; - - function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } - } - - function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); - } - - process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } - }; - - // v8 likes predictible objects - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - process.title = 'browser'; - process.browser = true; - process.env = {}; - process.argv = []; - process.version = ''; // empty string to avoid regexp issues - process.versions = {}; - - function noop() {} - - process.on = noop; - process.addListener = noop; - process.once = noop; - process.off = noop; - process.removeListener = noop; - process.removeAllListeners = noop; - process.emit = noop; - - process.binding = function (name) { - throw new Error('process.binding is not supported'); - }; - - process.cwd = function () { return '/' }; - process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); - }; - process.umask = function() { return 0; }; - - -/***/ }, +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getPrefix = getPrefix; +exports.browserPrefixToKey = browserPrefixToKey; +exports.browserPrefixToStyle = browserPrefixToStyle; +var prefixes = ['Moz', 'Webkit', 'O', 'ms']; +function getPrefix() /*: string*/ { + var prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform'; + + // Checking specifically for 'window.document' is for pseudo-browser server-side + // environments that define 'window' as the global context. + // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84) + if (typeof window === 'undefined' || typeof window.document === 'undefined') return ''; + + var style = window.document.documentElement.style; + + if (prop in style) return ''; + + for (var i = 0; i < prefixes.length; i++) { + if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i]; + } + + return ''; +} + +function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/ { + return prefix ? '' + prefix + kebabToTitleCase(prop) : prop; +} + +function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/ { + return prefix ? '-' + prefix.toLowerCase() + '-' + prop : prop; +} + +function kebabToTitleCase(str /*: string*/) /*: string*/ { + var out = ''; + var shouldCapitalize = true; + for (var i = 0; i < str.length; i++) { + if (shouldCapitalize) { + out += str[i].toUpperCase(); + shouldCapitalize = false; + } else if (str[i] === '-') { + shouldCapitalize = true; + } else { + out += str[i]; + } + } + return out; +} + +// Default export is the prefix itself, like 'Moz', 'Webkit', etc +// Note that you may have to re-test for certain things; for instance, Chrome 50 +// can handle unprefixed `transform`, but not unprefixed `user-select` +exports.default = getPrefix(); + +/***/ }), /* 19 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = log; - - /*eslint no-console:0*/ - function log() { - var _console; - - if ((undefined)) (_console = console).log.apply(_console, arguments); - } +/***/ (function(module, exports) { + +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + -/***/ } -/******/ ]) +/***/ }) +/******/ ]); }); -; //# sourceMappingURL=react-draggable.js.map \ No newline at end of file diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index f87974ed..f5fb0a41 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 15089f105fec648c1f75",".././index.js",".././lib/Draggable.es6","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././~/prop-types/index.js",".././~/prop-types/factoryWithTypeCheckers.js",".././~/fbjs/lib/emptyFunction.js",".././~/fbjs/lib/invariant.js",".././~/fbjs/lib/warning.js",".././~/prop-types/lib/ReactPropTypesSecret.js",".././~/prop-types/checkPropTypes.js",".././~/prop-types/factoryWithThrowingShims.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././~/classnames/index.js",".././lib/utils/domFns.es6",".././lib/utils/shims.es6",".././lib/utils/getPrefix.es6",".././lib/utils/positionFns.es6",".././lib/DraggableCore.es6",".././~/process/browser.js",".././lib/utils/log.es6"],"names":["module","exports","require","default","DraggableCore","Draggable","props","onDragStart","e","coreData","shouldStart","onStart","setState","dragging","dragged","onDrag","state","uiData","newState","x","y","bounds","slackX","slackY","deltaX","deltaY","shouldUpdate","onDragStop","shouldStop","onStop","controlled","Boolean","position","defaultPosition","isElementSVG","console","warn","SVGElement","findDOMNode","nextProps","style","svgTransform","draggable","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","className","children","cloneElement","Children","only","transform","Component","displayName","propTypes","axis","oneOf","oneOfType","shape","left","number","right","top","bottom","string","defaultProps","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","matchesSelectorFunc","el","selector","method","call","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","identifier","targetTouches","t","changedTouches","userSelectPrefix","userSelect","userSelectStyle","userSelectReplaceRegExp","RegExp","getAttribute","test","setAttribute","replace","childStyle","touchAction","findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","num","isNaN","a","parseInt","propName","componentName","Error","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","window","document","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","cloneBounds","ownerWindow","boundNode","querySelector","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","marginRight","marginBottom","Math","min","max","grid","pendingX","pendingY","round","touchIdentifier","draggableCore","touchObj","isStart","lastX","lastY","eventsFor","touch","start","move","stop","mouse","dragEventFor","NaN","handleDragStart","onMouseDown","allowAnyClick","button","domNode","disabled","target","Node","handle","cancel","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","type","preventDefault","Array","isArray","MouseEvent","err","createEvent","initMouseEvent","onMouseUp","onTouchStart","onTouchEnd","bool","process","browser","nodeType","arrayOf","log"],"mappings":"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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,QAAQ;AACrB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV,8BAA6B;AAC7B,SAAQ;AACR;AACA;AACA;AACA;AACA,gCAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,6BAA4B;AAC5B,QAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC7dA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD;AACrD,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA,4B;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAe;AACf;;AAEA;AACA,+FAA8F,eAAe;AAC7G;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA,0B;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;;;;;;mBCjLdgP,G;;AADxB;AACe,UAASA,GAAT,GAA2B;AAAA;;AACxC,OAAI,WAAJ,EAAiC,qBAAQA,GAAR;AAClC,E","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_11__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 15089f105fec648c1f75","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\ntype ConstructorProps = {\n position: { x: number, y: number },\n defaultPosition: { x: number, y: number }\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n state: DraggableState;\n\n constructor(props: ConstructorProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.es6","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 3\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 4\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyFunction.js\n// module id = 5\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/invariant.js\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/warning.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 8\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 9\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nmodule.exports = function() {\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n function shim() {\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 10\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_11__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 11\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 12\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\nconst userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n if (userSelectReplaceRegExp.test(style)) return; // don't add twice\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: HTMLElement) {\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectReplaceRegExp, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.es6","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.es6","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.es6","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = ReactDOM.findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n if (!boundNode) throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = ReactDOM.findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x: x, y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: ReactDOM.findDOMNode(draggable),\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x: x, y: y\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.es6","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype CoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state: CoreState = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const domNode = ReactDOM.findDOMNode(this);\n const {ownerDocument} = domNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const {ownerDocument} = ReactDOM.findDOMNode(this);\n\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render(): React.Element {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.es6","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 18\n// module chunks = 0","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.es6"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 34c401630d2a4ee1516c",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","userSelectPrefix","userSelect","userSelectStyle","userSelectReplaceRegExp","RegExp","style","getAttribute","test","setAttribute","replace","childStyle","touchAction","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","React","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","type","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","window","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","className","transform","defaultProps","log","module","exports","require","default","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7Ce0B,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOzD,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOH,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMtF,QAAQyF,OAAOH,QAAP,CAAgB6D,eAAhB,CAAgCnJ,KAA9C;;AAEA,MAAIkJ,QAAQlJ,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAIrF,IAAI,CAAb,EAAgBA,IAAIsO,SAASrO,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAIoO,mBAAmBG,IAAnB,EAAyBD,SAAStO,CAAT,CAAzB,KAAyCqF,KAA7C,EAAoD,OAAOiJ,SAAStO,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAASoO,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAI9O,IAAI,CAAb,EAAgBA,IAAI4O,IAAI3O,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAI8O,gBAAJ,EAAsB;AACpBD,aAAOD,IAAI5O,CAAJ,EAAO+O,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAI5O,CAAJ,MAAW,GAAf,EAAoB;AACzB8O,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAI5O,CAAJ,CAAP;AACD;AACF;AACD,SAAO6O,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 34c401630d2a4ee1516c","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\nconst userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: ?HTMLElement) {\n if (!body) return;\n const style = body.getAttribute('style') || '';\n if (userSelectReplaceRegExp.test(style)) return; // don't add twice\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: ?HTMLElement) {\n if (!body) return;\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectReplaceRegExp, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument.body);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 8ea2f74c..aa7cacb2 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,3 +1 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react"),require("react-dom")):root.ReactDraggable=factory(root.React,root.ReactDOM)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_11__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(1).default,module.exports.DraggableCore=__webpack_require__(17).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,controlled=Boolean(this.props.position),draggable=!controlled||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}(_react2.default.Component);Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports,__webpack_require__){if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,isValidElement=function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},throwOnDirectAccess=!0;module.exports=__webpack_require__(4)(isValidElement,throwOnDirectAccess)}else module.exports=__webpack_require__(10)()},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(5),invariant=__webpack_require__(6),warning=__webpack_require__(7),ReactPropTypesSecret=__webpack_require__(8),checkPropTypes=__webpack_require__(9);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x===1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required "+("in `"+componentName+"`, but its value is `null`."):"The "+location+" `"+propFullName+"` is marked as required in "+("`"+componentName+"`, but its value is `undefined`.")):null:validate(props,propName,componentName,location,propFullName)}if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){function validate(props,propName,componentName,location,propFullName,secret){var propValue=props[propName],propType=getPropType(propValue);if(propType!==expectedType){var preciseType=getPreciseType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+preciseType+"` supplied to `"+componentName+"`, expected ")+("`"+expectedType+"`."))}return null}return createChainableTypeChecker(validate)}function createAnyTypeChecker(){return createChainableTypeChecker(emptyFunction.thatReturnsNull)}function createArrayOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an array."))}for(var i=0;i1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}(),module.exports=warning},function(module,exports){"use strict";var ReactPropTypesSecret="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";module.exports=ReactPropTypesSecret},function(module,exports,__webpack_require__){"use strict";function checkPropTypes(typeSpecs,values,location,componentName,getStack){if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV)for(var typeSpecName in typeSpecs)if(typeSpecs.hasOwnProperty(typeSpecName)){var error;try{invariant("function"==typeof typeSpecs[typeSpecName],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",componentName||"React class",location,typeSpecName),error=typeSpecs[typeSpecName](values,typeSpecName,componentName,location,null,ReactPropTypesSecret)}catch(ex){error=ex}if(warning(!error||error instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",componentName||"React class",location,typeSpecName,typeof error),error instanceof Error&&!(error.message in loggedTypeFailures)){loggedTypeFailures[error.message]=!0;var stack=getStack?getStack():"";warning(!1,"Failed %s type: %s%s",location,error.message,null!=stack?stack:"")}}}if("production"!=={DRAGGABLE_DEBUG:void 0}.NODE_ENV)var invariant=__webpack_require__(6),warning=__webpack_require__(7),ReactPropTypesSecret=__webpack_require__(8),loggedTypeFailures={};module.exports=checkPropTypes},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(5),invariant=__webpack_require__(6);module.exports=function(){function shim(){invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function getShim(){return shim}shim.isRequired=shim;var ReactPropTypes={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim};return ReactPropTypes.checkPropTypes=emptyFunction,ReactPropTypes.PropTypes=ReactPropTypes,ReactPropTypes}},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_11__},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function classNames(){for(var classes=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||"undefined"==typeof window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)};var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(18),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc="",userSelectPrefix=(0,_getPrefix.getPrefix)("user-select"),userSelect=(0,_getPrefix.browserPrefixToStyle)("user-select",userSelectPrefix),userSelectStyle=";"+userSelect+": none;",userSelectReplaceRegExp=new RegExp(";?"+userSelect+": none;")},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(16)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);"production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&function(){var printWarning=function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}(),module.exports=warning},function(module,exports,__webpack_require__){"use strict";function cloneBounds(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:cloneBounds(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart),!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument.body),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);if((0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent),!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument.body),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,React.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument.body)}}},{key:"render",value:function(){return React.cloneElement(React.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(19))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(13).default,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return React.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),React.cloneElement(React.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(15);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x==1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];return getPropType(propValue)!==expectedType?new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`."):null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function isSymbol(propType,propValue){return"symbol"===propType||("Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol)}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":isSymbol(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){return propValue.constructor&&propValue.constructor.name?propValue.constructor.name:ANONYMOUS}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\nconst userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: ?HTMLElement) {\n if (!body) return;\n const style = body.getAttribute('style') || '';\n if (userSelectReplaceRegExp.test(style)) return; // don't add twice\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: ?HTMLElement) {\n if (!body) return;\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectReplaceRegExp, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument.body);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"]} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index af84862c..e420e67b 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -23,8 +23,8 @@ module.exports = function(config) { module: { loaders: [ { - test: /\.(?:jsx?|es6)$/, - loader: 'babel', + test: /\.(?:jsx?)$/, + loader: 'babel-loader', query: { cacheDirectory: true, }, @@ -32,7 +32,7 @@ module.exports = function(config) { }, { test: /\.json$/, - loader: 'json' + loader: 'json-loader' } ], }, @@ -44,7 +44,7 @@ module.exports = function(config) { }) ], resolve: { - extensions: ['', '.webpack.js', '.web.js', '.js', '.es6'] + extensions: ['.js'] } }, diff --git a/lib/Draggable.es6 b/lib/Draggable.js similarity index 95% rename from lib/Draggable.es6 rename to lib/Draggable.js index 05eba490..36c5b55e 100644 --- a/lib/Draggable.es6 +++ b/lib/Draggable.js @@ -1,5 +1,5 @@ // @flow -import React from 'react'; +import * as React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; // $FlowIgnore @@ -8,6 +8,7 @@ import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import DraggableCore from './DraggableCore'; +import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; import log from './utils/log'; import type {DraggableEventHandler} from './utils/types'; @@ -19,16 +20,22 @@ type DraggableState = { isElementSVG: boolean }; -type ConstructorProps = { - position: { x: number, y: number }, - defaultPosition: { x: number, y: number } +export type DraggableProps = { + ...$Exact, + axis: 'both' | 'x' | 'y' | 'none', + bounds: DraggableBounds | string | false, + defaultClassName: string, + defaultClassNameDragging: string, + defaultClassNameDragged: string, + defaultPosition: ControlPosition, + position: ControlPosition, }; // // Define // -export default class Draggable extends React.Component { +export default class Draggable extends React.Component { static displayName = 'Draggable'; @@ -158,9 +165,7 @@ export default class Draggable extends React.Component { position: null }; - state: DraggableState; - - constructor(props: ConstructorProps) { + constructor(props: DraggableProps) { super(props); this.state = { diff --git a/lib/DraggableCore.es6 b/lib/DraggableCore.js similarity index 83% rename from lib/DraggableCore.es6 rename to lib/DraggableCore.js index cc87b719..77d74831 100644 --- a/lib/DraggableCore.es6 +++ b/lib/DraggableCore.js @@ -1,5 +1,5 @@ // @flow -import React from 'react'; +import * as React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; import {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, @@ -27,13 +27,46 @@ const eventsFor = { // Default to mouse events. let dragEventFor = eventsFor.mouse; -type CoreState = { +type DraggableCoreState = { dragging: boolean, lastX: number, lastY: number, touchIdentifier: ?number }; +export type DraggableBounds = { + left: number, + right: number, + top: number, + bottom: number, +}; + +export type DraggableData = { + node: HTMLElement, + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number, +}; + +export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void; + +export type ControlPosition = {x: number, y: number}; + +export type DraggableCoreProps = { + allowAnyClick: boolean, + cancel: string, + children: React.Element, + disabled: boolean, + enableUserSelectHack: boolean, + offsetParent: HTMLElement, + grid: [number, number], + handle: string, + onStart: DraggableEventHandler, + onDrag: DraggableEventHandler, + onStop: DraggableEventHandler, + onMouseDown: (e: MouseEvent) => void, +}; + // // Define . // @@ -41,7 +74,7 @@ type CoreState = { // work well with libraries that require more control over the element. // -export default class DraggableCore extends React.Component { +export default class DraggableCore extends React.Component { static displayName = 'DraggableCore'; @@ -173,7 +206,7 @@ export default class DraggableCore extends React.Component { onMouseDown: function(){} }; - state: CoreState = { + state = { dragging: false, // Used while dragging to determine deltas. lastX: NaN, lastY: NaN, @@ -183,12 +216,15 @@ export default class DraggableCore extends React.Component { componentWillUnmount() { // Remove any leftover event handlers. Remove both touch and mouse handlers in case // some browser quirk caused a touch event to fire during a mouse move, or vice versa. - const {ownerDocument} = ReactDOM.findDOMNode(this); - removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag); - removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag); - removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); - removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop); - if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body); + const thisNode = ReactDOM.findDOMNode(this); + if (thisNode) { + const {ownerDocument} = thisNode; + removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag); + removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag); + removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); + removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop); + if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body); + } } handleDragStart: EventHandler = (e) => { @@ -199,14 +235,17 @@ export default class DraggableCore extends React.Component { if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed) - const domNode = ReactDOM.findDOMNode(this); - const {ownerDocument} = domNode; + const thisNode = ReactDOM.findDOMNode(this); + if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) { + throw new Error(' not mounted on DragStart!'); + } + const {ownerDocument} = thisNode; // Short circuit if handle or cancel prop was provided and selector doesn't match. if (this.props.disabled || (!(e.target instanceof ownerDocument.defaultView.Node)) || - (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, domNode)) || - (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, domNode))) { + (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) || + (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) { return; } @@ -304,10 +343,11 @@ export default class DraggableCore extends React.Component { if (position == null) return; const {x, y} = position; const coreEvent = createCoreData(this, x, y); - const {ownerDocument} = ReactDOM.findDOMNode(this); - - // Remove user-select hack - if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body); + const thisNode = ReactDOM.findDOMNode(this); + if (thisNode) { + // Remove user-select hack + if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument.body); + } log('DraggableCore: handleDragStop: %j', coreEvent); @@ -321,10 +361,12 @@ export default class DraggableCore extends React.Component { // Call event handler this.props.onStop(e, coreEvent); - // Remove event handlers - log('DraggableCore: Removing handlers'); - removeEvent(ownerDocument, dragEventFor.move, this.handleDrag); - removeEvent(ownerDocument, dragEventFor.stop, this.handleDragStop); + if (thisNode) { + // Remove event handlers + log('DraggableCore: Removing handlers'); + removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag); + removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop); + } }; onMouseDown: EventHandler = (e) => { @@ -354,7 +396,7 @@ export default class DraggableCore extends React.Component { return this.handleDragStop(e); }; - render(): React.Element { + render() { // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.cloneElement(React.Children.only(this.props.children), { diff --git a/lib/utils/domFns.es6 b/lib/utils/domFns.js similarity index 97% rename from lib/utils/domFns.es6 rename to lib/utils/domFns.js index 125bfe79..7e9376ac 100644 --- a/lib/utils/domFns.es6 +++ b/lib/utils/domFns.js @@ -133,13 +133,15 @@ const userSelectStyle = `;${userSelect}: none;`; const userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE // Note we're passing `document` b/c we could be iframed -export function addUserSelectStyles(body: HTMLElement) { +export function addUserSelectStyles(body: ?HTMLElement) { + if (!body) return; const style = body.getAttribute('style') || ''; if (userSelectReplaceRegExp.test(style)) return; // don't add twice body.setAttribute('style', style + userSelectStyle); } -export function removeUserSelectStyles(body: HTMLElement) { +export function removeUserSelectStyles(body: ?HTMLElement) { + if (!body) return; const style = body.getAttribute('style') || ''; body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); } diff --git a/lib/utils/getPrefix.es6 b/lib/utils/getPrefix.js similarity index 100% rename from lib/utils/getPrefix.es6 rename to lib/utils/getPrefix.js diff --git a/lib/utils/log.es6 b/lib/utils/log.js similarity index 100% rename from lib/utils/log.es6 rename to lib/utils/log.js diff --git a/lib/utils/positionFns.es6 b/lib/utils/positionFns.js similarity index 88% rename from lib/utils/positionFns.es6 rename to lib/utils/positionFns.js index bfe73884..91e3f561 100644 --- a/lib/utils/positionFns.es6 +++ b/lib/utils/positionFns.js @@ -14,7 +14,7 @@ export function getBoundPosition(draggable: Draggable, x: number, y: number): [n // Clone new bounds let {bounds} = draggable.props; bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds); - const node = ReactDOM.findDOMNode(draggable); + const node = findDOMNode(draggable); if (typeof bounds === 'string') { const {ownerDocument} = node; @@ -24,7 +24,9 @@ export function getBoundPosition(draggable: Draggable, x: number, y: number): [n boundNode = node.parentNode; } else { boundNode = ownerDocument.querySelector(bounds); - if (!boundNode) throw new Error('Bounds selector "' + bounds + '" could not find an element.'); + } + if (!(boundNode instanceof HTMLElement)) { + throw new Error('Bounds selector "' + bounds + '" could not find an element.'); } const nodeStyle = ownerWindow.getComputedStyle(node); const boundNodeStyle = ownerWindow.getComputedStyle(boundNode); @@ -68,7 +70,7 @@ export function canDragY(draggable: Draggable): boolean { export function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition { const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null; if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch - const node = ReactDOM.findDOMNode(draggableCore); + const node = findDOMNode(draggableCore); // User can provide an offsetParent if desired. const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body; return offsetXYFromParent(touchObj || e, offsetParent); @@ -78,22 +80,23 @@ export function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, export function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData { const state = draggable.state; const isStart = !isNum(state.lastX); + const node = findDOMNode(draggable); if (isStart) { // If this is our first move, use the x and y as last coords. return { - node: ReactDOM.findDOMNode(draggable), + node, deltaX: 0, deltaY: 0, lastX: x, lastY: y, - x: x, y: y + x, y, }; } else { // Otherwise calculate proper values. return { - node: ReactDOM.findDOMNode(draggable), + node, deltaX: x - state.lastX, deltaY: y - state.lastY, lastX: state.lastX, lastY: state.lastY, - x: x, y: y + x, y, }; } } @@ -120,3 +123,12 @@ function cloneBounds(bounds: Bounds): Bounds { bottom: bounds.bottom }; } + +function findDOMNode(draggable: Draggable | DraggableCore): HTMLElement { + const node = ReactDOM.findDOMNode(draggable); + if (!node) { + throw new Error(': Unmounted during event!'); + } + // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME + return node; +} diff --git a/lib/utils/shims.es6 b/lib/utils/shims.js similarity index 100% rename from lib/utils/shims.es6 rename to lib/utils/shims.js diff --git a/lib/utils/types.es6 b/lib/utils/types.js similarity index 100% rename from lib/utils/types.es6 rename to lib/utils/types.js diff --git a/package.json b/package.json index 4f37be6f..24334e23 100644 --- a/package.json +++ b/package.json @@ -29,47 +29,46 @@ }, "homepage": "https://github.com/mzabriskie/react-draggable", "devDependencies": { - "@types/react": "^15.0.23", - "@types/react-dom": "^15.5.0", - "babel-cli": "^6.10.1", - "babel-core": "^6.10.4", - "babel-eslint": "^6.1.2", - "babel-loader": "^6.2.4", - "babel-plugin-espower": "^2.3.1", - "babel-plugin-transform-flow-comments": "^6.8.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-react": "^6.11.1", - "babel-preset-stage-1": "^6.5.0", - "eslint": "^3.1.1", - "eslint-plugin-react": "^5.2.2", - "flow-bin": "^0.35.0", - "jasmine-core": "^2.4.1", - "json-loader": "^0.5.4", - "karma": "^1.1.1", - "karma-chrome-launcher": "^1.0.1", + "@types/react": "^15.5.3", + "@types/react-dom": "^15.5.3", + "babel-cli": "^6.26.0", + "babel-core": "^6.26.0", + "babel-eslint": "^7.2.3", + "babel-loader": "^7.1.2", + "babel-plugin-espower": "^2.3.2", + "babel-plugin-transform-flow-comments": "^6.22.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-react": "^6.24.1", + "babel-preset-stage-1": "^6.24.1", + "eslint": "^4.5.0", + "eslint-plugin-react": "^7.2.1", + "flow-bin": "^0.53.1", + "jasmine-core": "^2.7.0", + "json-loader": "^0.5.7", + "karma": "^1.7.0", + "karma-chrome-launcher": "^2.2.0", "karma-cli": "1.0.1", - "karma-firefox-launcher": "^1.0.0", + "karma-firefox-launcher": "^1.0.1", "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-phantomjs-launcher": "^1.0.1", + "karma-jasmine": "^1.1.0", + "karma-phantomjs-launcher": "^1.0.4", "karma-phantomjs-shim": "^1.4.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", + "karma-webpack": "^2.0.4", + "lodash": "^4.17.4", "open": "0.0.5", - "phantomjs-prebuilt": ">=2.1", - "power-assert": "^1.4.1", - "pre-commit": "^1.1.3", - "prop-types": "^15.5.8", - "react": "^15.2.1", - "react-addons-test-utils": "^15.4.0", - "react-dom": "^15.2.1", - "react-frame-component": "0.6.2", - "semver": "^5.3.0", - "static-server": "^2.0.3", - "typescript": "^2.3.2", - "uglify-js": "^2.7.0", - "webpack": "^1.13.1", - "webpack-dev-server": "^1.14.1" + "phantomjs-prebuilt": "^2.1.15", + "power-assert": "^1.4.4", + "pre-commit": "^1.2.2", + "prop-types": "^15.5.10", + "react": "^15.6.1", + "react-dom": "^15.6.1", + "react-frame-component": "^1.1.1", + "semver": "^5.4.1", + "static-server": "^2.0.5", + "typescript": "^2.4.2", + "uglify-js": "^3.0.28", + "webpack": "^3.5.5", + "webpack-dev-server": "^2.7.1" }, "precommit": [ "lint", @@ -78,4 +77,4 @@ "dependencies": { "classnames": "^2.2.5" } -} \ No newline at end of file +} diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 8d59293a..7d22a4c6 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -1,7 +1,7 @@ /*eslint no-unused-vars:0, no-console:0*/ import React from 'react'; import ReactDOM from 'react-dom'; -import TestUtils from 'react-addons-test-utils'; +import TestUtils from 'react-dom/test-utils'; import Draggable, {DraggableCore} from '../index'; import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; diff --git a/webpack.config.js b/webpack.config.js index 8793442a..3d32576a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -25,7 +25,7 @@ module.exports = { } }, module: { - loaders: [ + rules: [ { test: /\.(?:js|es).?$/, loader: 'babel-loader?cacheDirectory', @@ -34,13 +34,15 @@ module.exports = { ] }, resolve: { - extensions: ['', '.webpack.js', '.web.js', '.js', '.es6'] + extensions: ['.js'] }, plugins: [ new webpack.DefinePlugin({ 'process.env': { DRAGGABLE_DEBUG: process.env.DRAGGABLE_DEBUG } - }) + }), + // Scope hoisting + new webpack.optimize.ModuleConcatenationPlugin(), ] }; diff --git a/yarn.lock b/yarn.lock index ee63e8b6..c077250e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,64 +2,75 @@ # yarn lockfile v1 -"@types/react-dom@^15.5.0": - version "15.5.0" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-15.5.0.tgz#7f4fb9613d4051141773242f7b6b5f1a46b34bd9" +"@types/react-dom@^15.5.3": + version "15.5.3" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-15.5.3.tgz#4f26d09c5a92bc76728051ab5ee7116617d72f39" dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^15.0.23": - version "15.0.23" - resolved "https://registry.yarnpkg.com/@types/react/-/react-15.0.23.tgz#f3facbef5290610f54242f00308759d3a3c27346" +"@types/react@*": + version "16.0.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.2.tgz#0b31a73cdde6272b719e5b05a7df6d1e2654a804" -Base64@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" +"@types/react@^15.5.3": + version "15.6.1" + resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.1.tgz#497f7228762da4432e335957cb34fe9b40f150ae" abbrev@1: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" -accepts@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" - dependencies: - mime-types "~2.0.4" - negotiator "0.4.9" - -accepts@~1.3.3: +accepts@1.3.3, accepts@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" dependencies: mime-types "~2.1.11" negotiator "0.6.1" +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + acorn-es7-plugin@^1.0.12: version "1.1.3" resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.3.tgz#6a032a71f1faf396a1a29729c7b150fe480cc17a" -acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: +acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" -acorn@^3.0.0, acorn@^3.0.4: +acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.0, acorn@^4.0.1: +acorn@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" -after@0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0, acorn@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" ajv-keywords@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" +ajv-keywords@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" + ajv@^4.7.0: version "4.9.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.9.0.tgz#5a358085747b134eb567d6d15e015f1d7802f45c" @@ -67,6 +78,22 @@ ajv@^4.7.0: co "^4.6.0" json-stable-stringify "^1.0.1" +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.5, ajv@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -79,9 +106,13 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" +ansi-escapes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" @@ -91,6 +122,10 @@ ansi-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" @@ -99,6 +134,12 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" +ansi-styles@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + anymatch@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" @@ -137,10 +178,25 @@ array-filter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" +array-flatten@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + array-slice@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" @@ -171,6 +227,14 @@ asap@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" @@ -193,11 +257,7 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@^0.9.0, async@~0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - -async@^1.3.0: +async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -207,9 +267,15 @@ async@^2.0.1: dependencies: lodash "^4.14.0" -async@~0.2.6: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" +async@^2.1.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + dependencies: + lodash "^4.14.0" + +async@~0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" asynckit@^0.4.0: version "0.4.0" @@ -223,70 +289,69 @@ aws4@^1.2.1: version "1.5.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" -babel-cli@^6.10.1: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.18.0.tgz#92117f341add9dead90f6fa7d0a97c0cc08ec186" +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" dependencies: - babel-core "^6.18.0" - babel-polyfill "^6.16.0" - babel-register "^6.18.0" - babel-runtime "^6.9.0" - commander "^2.8.1" - convert-source-map "^1.1.0" + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" fs-readdir-recursive "^1.0.0" - glob "^5.0.5" - lodash "^4.2.0" - output-file-sync "^1.1.0" - path-is-absolute "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" slash "^1.0.0" - source-map "^0.5.0" - v8flags "^2.0.10" + source-map "^0.5.6" + v8flags "^2.1.1" optionalDependencies: - chokidar "^1.0.0" + chokidar "^1.6.1" -babel-code-frame@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: - chalk "^1.1.0" + chalk "^1.1.3" esutils "^2.0.2" - js-tokens "^2.0.0" - -babel-core@^6.10.4, babel-core@^6.18.0: - version "6.18.2" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.18.2.tgz#d8bb14dd6986fa4f3566a26ceda3964fa0e04e5b" - dependencies: - babel-code-frame "^6.16.0" - babel-generator "^6.18.0" - babel-helpers "^6.16.0" - babel-messages "^6.8.0" - babel-register "^6.18.0" - babel-runtime "^6.9.1" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.11.0" - convert-source-map "^1.1.0" - debug "^2.1.1" - json5 "^0.5.0" - lodash "^4.2.0" - minimatch "^3.0.2" - path-is-absolute "^1.0.0" - private "^0.1.6" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" slash "^1.0.0" - source-map "^0.5.0" + source-map "^0.5.6" -babel-eslint@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-6.1.2.tgz#5293419fe3672d66598d327da9694567ba6a5f2f" +babel-eslint@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" dependencies: - babel-traverse "^6.0.20" - babel-types "^6.0.19" - babylon "^6.0.18" - lodash.assign "^4.0.0" - lodash.pickby "^4.0.0" + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.17.0" -babel-generator@^6.1.0, babel-generator@^6.18.0: +babel-generator@^6.1.0: version "6.19.0" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.19.0.tgz#9b2f244204777a3d6810ec127c673c87b349fac5" dependencies: @@ -298,141 +363,158 @@ babel-generator@^6.1.0, babel-generator@^6.18.0: lodash "^4.2.0" source-map "^0.5.0" -babel-helper-bindify-decorators@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz#fc00c573676a6e702fffa00019580892ec8780a5" - dependencies: - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-builder-binary-assignment-operator-visitor@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6" +babel-generator@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" dependencies: - babel-helper-explode-assignable-expression "^6.18.0" - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-builder-react-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71" - dependencies: - babel-runtime "^6.9.0" - babel-types "^6.18.0" - esutils "^2.0.0" - lodash "^4.2.0" - -babel-helper-call-delegate@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" - dependencies: - babel-helper-hoist-variables "^6.18.0" - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" - dependencies: - babel-helper-function-name "^6.18.0" - babel-runtime "^6.9.0" - babel-types "^6.18.0" - lodash "^4.2.0" - -babel-helper-explode-assignable-expression@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe" - dependencies: - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-explode-class@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz#c44f76f4fa23b9c5d607cbac5d4115e7a76f62cb" - dependencies: - babel-helper-bindify-decorators "^6.18.0" - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" - dependencies: - babel-helper-get-function-arity "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-get-function-arity@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-hoist-variables@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-optimise-call-expression@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" -babel-helper-regex@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" +babel-helper-bindify-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" dependencies: - babel-runtime "^6.9.0" - babel-types "^6.18.0" - lodash "^4.2.0" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" -babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-generator@^6.16.2: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.18.0.tgz#336cdf3cab650bb191b02fc16a3708e7be7f9ce5" +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" dependencies: - babel-helper-function-name "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" -babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" dependencies: - babel-helper-optimise-call-expression "^6.18.0" - babel-messages "^6.8.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" -babel-helpers@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3" - dependencies: - babel-runtime "^6.0.0" - babel-template "^6.16.0" +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-explode-class@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" + dependencies: + babel-helper-bindify-decorators "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" -babel-loader@^6.2.4: - version "6.2.8" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.2.8.tgz#30d7183aef60afc140b36443676b7acb4c12ac9c" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: - find-cache-dir "^0.1.1" - loader-utils "^0.2.11" - mkdirp "^0.5.1" - object-assign "^4.0.1" + babel-runtime "^6.22.0" babel-messages@^6.8.0: version "6.8.0" @@ -440,21 +522,21 @@ babel-messages@^6.8.0: dependencies: babel-runtime "^6.0.0" -babel-plugin-check-es2015-constants@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7" +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-espower@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.1.tgz#d15e904bc9949b14ac233b7965c2a5dc7a19a6a9" +babel-plugin-espower@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e" dependencies: babel-generator "^6.1.0" babylon "^6.1.0" call-matcher "^1.0.0" core-js "^2.0.0" - espower-location-detector "^0.1.1" + espower-location-detector "^1.0.0" espurify "^1.6.0" estraverse "^4.1.1" @@ -490,7 +572,7 @@ babel-plugin-syntax-export-extensions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" -babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13, babel-plugin-syntax-flow@^6.8.0: +babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" @@ -502,422 +584,430 @@ babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" -babel-plugin-syntax-trailing-function-commas@^6.3.13: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.13.0.tgz#2b84b7d53dd744f94ff1fad7669406274b23f541" +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" -babel-plugin-transform-async-generator-functions@^6.17.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz#d0b5a2b2f0940f2b245fa20a00519ed7bc6cae54" +babel-plugin-transform-async-generator-functions@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" dependencies: - babel-helper-remap-async-to-generator "^6.16.2" + babel-helper-remap-async-to-generator "^6.24.1" babel-plugin-syntax-async-generators "^6.5.0" - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-async-to-generator@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" +babel-plugin-transform-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" dependencies: - babel-helper-remap-async-to-generator "^6.16.0" + babel-helper-remap-async-to-generator "^6.24.1" babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-class-constructor-call@^6.3.13: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.18.0.tgz#80855e38a1ab47b8c6c647f8ea1bcd2c00ca3aae" +babel-plugin-transform-class-constructor-call@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" dependencies: babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" -babel-plugin-transform-class-properties@^6.18.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.19.0.tgz#1274b349abaadc835164e2004f4a2444a2788d5f" +babel-plugin-transform-class-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" dependencies: - babel-helper-function-name "^6.18.0" + babel-helper-function-name "^6.24.1" babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.9.1" - babel-template "^6.15.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" -babel-plugin-transform-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz#82d65c1470ae83e2d13eebecb0a1c2476d62da9d" +babel-plugin-transform-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" dependencies: - babel-helper-define-map "^6.8.0" - babel-helper-explode-class "^6.8.0" + babel-helper-explode-class "^6.24.1" babel-plugin-syntax-decorators "^6.13.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - babel-types "^6.13.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" -babel-plugin-transform-es2015-arrow-functions@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d" +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d" +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoping@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af" +babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" dependencies: - babel-runtime "^6.9.0" - babel-template "^6.15.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - lodash "^4.2.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" -babel-plugin-transform-es2015-classes@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" +babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" dependencies: - babel-helper-define-map "^6.18.0" - babel-helper-function-name "^6.18.0" - babel-helper-optimise-call-expression "^6.18.0" - babel-helper-replace-supers "^6.18.0" - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-template "^6.14.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" -babel-plugin-transform-es2015-computed-properties@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870" +babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" dependencies: - babel-helper-define-map "^6.8.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" -babel-plugin-transform-es2015-destructuring@^6.18.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz#ff1d911c4b3f4cab621bd66702a869acd1900533" +babel-plugin-transform-es2015-destructuring@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: - babel-runtime "^6.9.0" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-duplicate-keys@^6.6.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d" +babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" dependencies: - babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" -babel-plugin-transform-es2015-for-of@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" +babel-plugin-transform-es2015-for-of@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-function-name@^6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719" +babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" dependencies: - babel-helper-function-name "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.9.0" + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" -babel-plugin-transform-es2015-literals@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468" +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-modules-amd@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" +babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-commonjs@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" +babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" dependencies: - babel-plugin-transform-strict-mode "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-types "^6.18.0" + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" -babel-plugin-transform-es2015-modules-systemjs@^6.18.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz#50438136eba74527efa00a5b0fefaf1dc4071da6" +babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" dependencies: - babel-helper-hoist-variables "^6.18.0" - babel-runtime "^6.11.6" - babel-template "^6.14.0" + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-umd@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" +babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" dependencies: - babel-plugin-transform-es2015-modules-amd "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" -babel-plugin-transform-es2015-object-super@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5" +babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" dependencies: - babel-helper-replace-supers "^6.8.0" - babel-runtime "^6.0.0" + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-parameters@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" +babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" dependencies: - babel-helper-call-delegate "^6.18.0" - babel-helper-get-function-arity "^6.18.0" - babel-runtime "^6.9.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" -babel-plugin-transform-es2015-shorthand-properties@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" +babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" -babel-plugin-transform-es2015-spread@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c" +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-sticky-regex@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be" +babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" dependencies: - babel-helper-regex "^6.8.0" - babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" -babel-plugin-transform-es2015-template-literals@^6.6.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b" +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-typeof-symbol@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" +babel-plugin-transform-es2015-typeof-symbol@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-es2015-unicode-regex@^6.3.13: - version "6.11.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c" +babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" dependencies: - babel-helper-regex "^6.8.0" - babel-runtime "^6.0.0" + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" regexpu-core "^2.0.0" -babel-plugin-transform-exponentiation-operator@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4" +babel-plugin-transform-exponentiation-operator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.8.0" + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-export-extensions@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.8.0.tgz#fa80ff655b636549431bfd38f6b817bd82e47f5b" +babel-plugin-transform-export-extensions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" dependencies: babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-flow-comments@^6.8.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-comments/-/babel-plugin-transform-flow-comments-6.17.0.tgz#a7aabecef1800f76facaf06d8e967fd39dac7728" +babel-plugin-transform-flow-comments@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-comments/-/babel-plugin-transform-flow-comments-6.22.0.tgz#8d9491132f2b48abd0656f96c20f3bbd6fc17529" dependencies: babel-plugin-syntax-flow "^6.8.0" - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-flow-strip-types@^6.3.13: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.18.0.tgz#4d3e642158661e9b40db457c004a30817fa32592" +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" dependencies: babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-object-rest-spread@^6.16.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.19.0.tgz#f6ac428ee3cb4c6aa00943ed1422ce813603b34c" +babel-plugin-transform-object-rest-spread@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" dependencies: babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.0.0" + babel-runtime "^6.26.0" -babel-plugin-transform-react-display-name@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.8.0.tgz#f7a084977383d728bdbdc2835bba0159577f660e" +babel-plugin-transform-react-display-name@^6.23.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" dependencies: - babel-runtime "^6.0.0" + babel-runtime "^6.22.0" -babel-plugin-transform-react-jsx-self@^6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.11.0.tgz#605c9450c1429f97a930f7e1dfe3f0d9d0dbd0f4" +babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" dependencies: babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.9.0" + babel-runtime "^6.22.0" -babel-plugin-transform-react-jsx-source@^6.3.13: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.9.0.tgz#af684a05c2067a86e0957d4f343295ccf5dccf00" +babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" dependencies: babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.9.0" + babel-runtime "^6.22.0" -babel-plugin-transform-react-jsx@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.8.0.tgz#94759942f70af18c617189aa7f3593f1644a71ab" +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" dependencies: - babel-helper-builder-react-jsx "^6.8.0" + babel-helper-builder-react-jsx "^6.24.1" babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-regenerator@^6.16.0: - version "6.16.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-es2015@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" dependencies: - babel-runtime "^6.9.0" - babel-types "^6.16.0" - private "~0.1.5" - -babel-plugin-transform-strict-mode@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-polyfill@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422" - dependencies: - babel-runtime "^6.9.1" - core-js "^2.4.0" - regenerator-runtime "^0.9.5" - -babel-preset-es2015@^6.9.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" - dependencies: - babel-plugin-check-es2015-constants "^6.3.13" - babel-plugin-transform-es2015-arrow-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoping "^6.18.0" - babel-plugin-transform-es2015-classes "^6.18.0" - babel-plugin-transform-es2015-computed-properties "^6.3.13" - babel-plugin-transform-es2015-destructuring "^6.18.0" - babel-plugin-transform-es2015-duplicate-keys "^6.6.0" - babel-plugin-transform-es2015-for-of "^6.18.0" - babel-plugin-transform-es2015-function-name "^6.9.0" - babel-plugin-transform-es2015-literals "^6.3.13" - babel-plugin-transform-es2015-modules-amd "^6.18.0" - babel-plugin-transform-es2015-modules-commonjs "^6.18.0" - babel-plugin-transform-es2015-modules-systemjs "^6.18.0" - babel-plugin-transform-es2015-modules-umd "^6.18.0" - babel-plugin-transform-es2015-object-super "^6.3.13" - babel-plugin-transform-es2015-parameters "^6.18.0" - babel-plugin-transform-es2015-shorthand-properties "^6.18.0" - babel-plugin-transform-es2015-spread "^6.3.13" - babel-plugin-transform-es2015-sticky-regex "^6.3.13" - babel-plugin-transform-es2015-template-literals "^6.6.0" - babel-plugin-transform-es2015-typeof-symbol "^6.18.0" - babel-plugin-transform-es2015-unicode-regex "^6.3.13" - babel-plugin-transform-regenerator "^6.16.0" - -babel-preset-react@^6.11.1: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.16.0.tgz#aa117d60de0928607e343c4828906e4661824316" - dependencies: - babel-plugin-syntax-flow "^6.3.13" babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-flow-strip-types "^6.3.13" - babel-plugin-transform-react-display-name "^6.3.13" - babel-plugin-transform-react-jsx "^6.3.13" - babel-plugin-transform-react-jsx-self "^6.11.0" - babel-plugin-transform-react-jsx-source "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" -babel-preset-stage-1@^6.5.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.16.0.tgz#9d31fbbdae7b17c549fd3ac93e3cf6902695e479" +babel-preset-stage-1@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" dependencies: - babel-plugin-transform-class-constructor-call "^6.3.13" - babel-plugin-transform-export-extensions "^6.3.13" - babel-preset-stage-2 "^6.16.0" + babel-plugin-transform-class-constructor-call "^6.24.1" + babel-plugin-transform-export-extensions "^6.22.0" + babel-preset-stage-2 "^6.24.1" -babel-preset-stage-2@^6.16.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz#9eb7bf9a8e91c68260d5ba7500493caaada4b5b5" +babel-preset-stage-2@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" dependencies: babel-plugin-syntax-dynamic-import "^6.18.0" - babel-plugin-transform-class-properties "^6.18.0" - babel-plugin-transform-decorators "^6.13.0" - babel-preset-stage-3 "^6.17.0" - -babel-preset-stage-3@^6.17.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz#b6638e46db6e91e3f889013d8ce143917c685e39" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.3.13" - babel-plugin-transform-async-generator-functions "^6.17.0" - babel-plugin-transform-async-to-generator "^6.16.0" - babel-plugin-transform-exponentiation-operator "^6.3.13" - babel-plugin-transform-object-rest-spread "^6.16.0" - -babel-register@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" - dependencies: - babel-core "^6.18.0" - babel-runtime "^6.11.6" - core-js "^2.4.0" + babel-plugin-transform-class-properties "^6.24.1" + babel-plugin-transform-decorators "^6.24.1" + babel-preset-stage-3 "^6.24.1" + +babel-preset-stage-3@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-generator-functions "^6.24.1" + babel-plugin-transform-async-to-generator "^6.24.1" + babel-plugin-transform-exponentiation-operator "^6.24.1" + babel-plugin-transform-object-rest-spread "^6.22.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" home-or-tmp "^2.0.0" - lodash "^4.2.0" + lodash "^4.17.4" mkdirp "^0.5.1" - source-map-support "^0.4.2" + source-map-support "^0.4.15" -babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.9.0, babel-runtime@^6.9.1: +babel-runtime@^6.0.0, babel-runtime@^6.9.0, babel-runtime@^6.9.1: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" dependencies: core-js "^2.4.0" regenerator-runtime "^0.9.5" -babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.8.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" - dependencies: - babel-runtime "^6.9.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" - babylon "^6.11.0" - lodash "^4.2.0" - -babel-traverse@^6.0.20, babel-traverse@^6.16.0, babel-traverse@^6.18.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.19.0.tgz#68363fb821e26247d52a519a84b2ceab8df4f55a" +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: - babel-code-frame "^6.16.0" - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.19.0" - babylon "^6.11.0" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.0.19, babel-types@^6.13.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.8.0, babel-types@^6.9.0: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0: version "6.19.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.19.0.tgz#8db2972dbed01f1192a8b602ba1e1e4c516240b9" dependencies: @@ -926,10 +1016,23 @@ babel-types@^6.0.19, babel-types@^6.13.0, babel-types@^6.16.0, babel-types@^6.18 lodash "^4.2.0" to-fast-properties "^1.0.1" -babylon@^6.0.18, babylon@^6.1.0, babylon@^6.11.0: +babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.1.0: version "6.14.1" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" +babylon@^6.17.0, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -938,17 +1041,21 @@ balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" -base64-arraybuffer@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154" +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" base64-js@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" -base64id@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" batch@0.5.3: version "0.5.3" @@ -960,10 +1067,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -benchmark@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73" - better-assert@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" @@ -998,20 +1101,35 @@ bluebird@^3.3.0: version "3.4.6" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" -body-parser@^1.12.4: - version "1.15.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.15.2.tgz#d7578cf4f1d11d5f6ea804cef35dc7a7ff6dae67" +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +body-parser@^1.16.1: + version "1.17.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.2.tgz#f8892abc8f9e627d42aedafbca66bf5ab99104ee" dependencies: bytes "2.4.0" content-type "~1.0.2" - debug "~2.2.0" + debug "2.6.7" depd "~1.1.0" - http-errors "~1.5.0" - iconv-lite "0.4.13" + http-errors "~1.6.1" + iconv-lite "0.4.15" on-finished "~2.3.0" - qs "6.2.0" - raw-body "~2.1.7" - type-is "~1.6.13" + qs "6.4.0" + raw-body "~2.2.0" + type-is "~1.6.15" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" boom@2.x.x: version "2.10.1" @@ -1023,34 +1141,98 @@ brace-expansion@^1.0.0: version "1.1.6" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" + balanced-match "^0.4.1" + concat-map "0.0.1" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^0.1.2: + version "0.1.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + dependencies: + expand-range "^0.1.0" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + dependencies: + buffer-xor "^1.0.2" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + inherits "^2.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" -braces@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" dependencies: - expand-range "^0.1.0" + bn.js "^4.1.0" + randombytes "^2.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" -browserify-zlib@~0.1.4: +browserify-zlib@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" dependencies: pako "~0.2.0" +buffer-indexof@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz#f54f647c4f4e25228baa656a2e57e43d5f270982" + buffer-shims@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" -buffer@^4.9.0: +buffer-xor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" dependencies: @@ -1058,6 +1240,14 @@ buffer@^4.9.0: ieee754 "^1.1.4" isarray "^1.0.0" +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + bytes@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" @@ -1093,14 +1283,37 @@ callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -1118,7 +1331,7 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1128,7 +1341,15 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chokidar@^1.0.0, chokidar@^1.4.1: +chalk@^2.0.0, chalk@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chokidar@^1.4.1: version "1.6.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" dependencies: @@ -1143,6 +1364,28 @@ chokidar@^1.0.0, chokidar@^1.4.1: optionalDependencies: fsevents "^1.0.0" +chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + circular-json@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" @@ -1151,11 +1394,11 @@ classnames@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" -cli-cursor@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" dependencies: - restore-cursor "^1.0.1" + restore-cursor "^2.0.0" cli-width@^2.0.0: version "2.1.0" @@ -1169,9 +1412,13 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" -clone@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" co@^4.6.0: version "4.6.0" @@ -1181,6 +1428,16 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" +color-convert@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + dependencies: + color-name "^1.1.1" + +color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + colors@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -1197,7 +1454,11 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.3.0, commander@^2.8.1, commander@^2.9.0: +commander@^2.11.0, commander@~2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +commander@^2.3.0, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: @@ -1215,9 +1476,9 @@ component-emitter@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" -component-emitter@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe" +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" component-inherit@0.0.3: version "0.0.3" @@ -1252,7 +1513,15 @@ concat-stream@1.5.0: readable-stream "~2.0.0" typedarray "~0.0.5" -concat-stream@^1.4.6, concat-stream@^1.4.7: +concat-stream@1.6.0, concat-stream@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^1.4.7: version "1.5.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" dependencies: @@ -1264,12 +1533,12 @@ connect-history-api-fallback@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" -connect@^3.3.5: - version "3.5.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198" +connect@^3.6.0: + version "3.6.3" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.3.tgz#f7320d46a25b4be7b483a2236517f24b1e27e301" dependencies: - debug "~2.2.0" - finalhandler "0.5.0" + debug "2.6.8" + finalhandler "1.0.4" parseurl "~1.3.1" utils-merge "1.0.0" @@ -1283,9 +1552,9 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" -constants-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" content-disposition@0.5.1: version "0.5.1" @@ -1295,9 +1564,9 @@ content-type@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" -convert-source-map@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" +convert-source-map@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" cookie-signature@1.0.6: version "1.0.6" @@ -1315,23 +1584,56 @@ core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" +core-js@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cross-spawn-async@^2.0.0: - version "2.2.5" - resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc" +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" dependencies: - lru-cache "^4.0.0" - which "^1.2.8" + bn.js "^4.1.0" + elliptic "^6.0.0" -cross-spawn@2.0.x: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-2.0.1.tgz#ab6fd893a099759d9b85220e3a64397de946b0f6" +create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-react-class@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" dependencies: - cross-spawn-async "^2.0.0" - spawn-sync "1.0.13" + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" cryptiles@2.x.x: version "2.0.5" @@ -1339,13 +1641,26 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" -crypto-browserify@~3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" +crypto-browserify@^3.11.0: + version "3.11.1" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" dependencies: - pbkdf2-compat "2.0.1" - ripemd160 "0.2.0" - sha.js "2.2.6" + array-find-index "^1.0.1" custom-event@~1.0.0: version "1.0.1" @@ -1377,17 +1692,29 @@ debug@2.2.0, debug@~2.2.0: dependencies: ms "0.7.1" -debug@^2.1.1, debug@^2.2.0: +debug@2.3.3, debug@^2.2.0: version "2.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" dependencies: ms "0.7.2" -decamelize@^1.0.0: +debug@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" + dependencies: + ms "2.0.0" + +debug@2.6.8, debug@^2.6.6, debug@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" -deep-equal@^1.0.0: +deep-equal@^1.0.0, deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -1418,6 +1745,17 @@ del@^2.0.2: pinkie-promise "^2.0.0" rimraf "^2.2.8" +del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1426,10 +1764,21 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" +depd@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + depd@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -1440,6 +1789,10 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +detect-node@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" + di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" @@ -1448,9 +1801,34 @@ diff-match-patch@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" -doctrine@^1.2.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + +dns-packet@^1.0.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.2.tgz#a8a26bec7646438963fc86e06f8f8b16d6c8bf7a" + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" dependencies: esutils "^2.0.2" isarray "^1.0.0" @@ -1482,23 +1860,35 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -empower-core@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1" +empower-core@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.2.tgz#5adef566088e31fba80ba0a36df47d7094169144" dependencies: call-signature "0.0.2" core-js "^2.0.0" -empower@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/empower/-/empower-1.2.1.tgz#b63302741b6d503a241bff115befc948c8362c60" +empower@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/empower/-/empower-1.2.3.tgz#6f0da73447f4edd838fec5c60313a88ba5cb852b" dependencies: core-js "^2.0.0" - empower-core "^0.6.1" + empower-core "^0.6.2" encodeurl@~1.0.1: version "1.0.1" @@ -1510,51 +1900,53 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -engine.io-client@1.6.9: - version "1.6.9" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.6.9.tgz#1d6ad48048a5083c95096943b29d36efdb212401" +engine.io-client@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" dependencies: - component-emitter "1.1.2" + component-emitter "1.2.1" component-inherit "0.0.3" - debug "2.2.0" - engine.io-parser "1.2.4" + debug "2.3.3" + engine.io-parser "1.3.2" has-cors "1.1.0" indexof "0.0.1" - parsejson "0.0.1" - parseqs "0.0.2" - parseuri "0.0.4" - ws "1.0.1" - xmlhttprequest-ssl "1.5.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.2" + xmlhttprequest-ssl "1.5.3" yeast "0.1.2" -engine.io-parser@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42" +engine.io-parser@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" dependencies: - after "0.8.1" + after "0.8.2" arraybuffer.slice "0.0.6" - base64-arraybuffer "0.1.2" + base64-arraybuffer "0.1.5" blob "0.0.4" - has-binary "0.1.6" - utf8 "2.1.0" + has-binary "0.1.7" + wtf-8 "1.0.0" -engine.io@1.6.10: - version "1.6.10" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.6.10.tgz#f87d84e1bd21d1a2ec7f8deef0c62054acdfb27a" +engine.io@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" dependencies: - accepts "1.1.4" - base64id "0.1.0" - debug "2.2.0" - engine.io-parser "1.2.4" - ws "1.0.1" + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.2" -enhanced-resolve@~0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" dependencies: graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" ent@~2.2.0: version "2.2.0" @@ -1566,6 +1958,30 @@ errno@^0.1.3: dependencies: prr "~0.0.0" +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: version "0.10.12" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" @@ -1639,71 +2055,82 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-plugin-react@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-5.2.2.tgz#7db068e1f5487f6871e4deef36a381c303eac161" +eslint-plugin-react@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.2.1.tgz#c2673526ed6571b08c69c5f453d03f5f13e8ddbe" dependencies: - doctrine "^1.2.2" - jsx-ast-utils "^1.2.1" + doctrine "^2.0.0" + has "^1.0.1" + jsx-ast-utils "^2.0.0" -eslint@^3.1.1: - version "3.10.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.10.2.tgz#c9a10e8bf6e9d65651204778c503341f1eac3ce7" +eslint-scope@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: - babel-code-frame "^6.16.0" - chalk "^1.1.3" - concat-stream "^1.4.6" - debug "^2.1.1" - doctrine "^1.2.2" - escope "^3.6.0" - espree "^3.3.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.5.0.tgz#bb75d3b8bde97fb5e13efcd539744677feb019c3" + dependencies: + ajv "^5.2.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^2.6.8" + doctrine "^2.0.0" + eslint-scope "^3.7.1" + espree "^3.5.0" + esquery "^1.0.0" estraverse "^4.2.0" esutils "^2.0.2" file-entry-cache "^2.0.0" - glob "^7.0.3" - globals "^9.2.0" - ignore "^3.2.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^9.17.0" + ignore "^3.3.3" imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" + inquirer "^3.0.6" is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify "^1.0.1" levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.7.5" - strip-bom "^3.0.0" - strip-json-comments "~1.0.1" - table "^3.7.8" + path-is-inside "^1.0.2" + pluralize "^4.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "^4.0.1" text-table "~0.2.0" - user-home "^2.0.0" -espower-location-detector@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-0.1.2.tgz#d43be738af3e0b18197eeb5c22b95512dee6b83c" +espower-location-detector@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" dependencies: is-url "^1.2.1" path-is-absolute "^1.0.0" source-map "^0.5.0" xtend "^4.0.0" -espree@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" +espree@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d" dependencies: - acorn "^4.0.1" + acorn "^5.1.1" acorn-jsx "^3.0.0" -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" espurify@^1.6.0: version "1.6.0" @@ -1711,6 +2138,12 @@ espurify@^1.6.0: dependencies: core-js "^2.0.0" +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + esrecurse@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" @@ -1726,7 +2159,7 @@ estraverse@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" -esutils@^2.0.0, esutils@^2.0.2: +esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -1749,15 +2182,29 @@ events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -eventsource@~0.1.6: +eventsource@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" dependencies: original ">=0.0.5" -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" +evp_bytestokey@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" + dependencies: + create-hash "^1.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" expand-braces@^0.1.1: version "0.1.2" @@ -1821,6 +2268,14 @@ extend@^3.0.0, extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" +external-editor@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" + dependencies: + iconv-lite "^0.4.17" + jschardet "^1.4.2" + tmp "^0.0.31" + extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -1836,10 +2291,23 @@ extract-zip@~1.5.0: mkdirp "0.5.0" yauzl "2.4.1" +extract-zip@~1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440" + dependencies: + concat-stream "1.6.0" + debug "2.2.0" + mkdirp "0.5.0" + yauzl "2.4.1" + extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + fast-levenshtein@~2.0.4: version "2.0.5" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" @@ -1856,7 +2324,7 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.9: +fbjs@^0.8.9: version "0.8.12" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" dependencies: @@ -1874,12 +2342,11 @@ fd-slicer@~1.0.1: dependencies: pend "~1.2.0" -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" dependencies: escape-string-regexp "^1.0.5" - object-assign "^4.1.0" file-entry-cache@^2.0.0: version "2.0.0" @@ -1916,13 +2383,25 @@ finalhandler@0.5.0: statuses "~1.3.0" unpipe "~1.0.0" -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" +finalhandler@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" + dependencies: + debug "2.6.8" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.1" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" dependencies: commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" + make-dir "^1.0.0" + pkg-dir "^2.0.0" find-up@^1.0.0: version "1.1.2" @@ -1931,6 +2410,12 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + flat-cache@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" @@ -1940,9 +2425,9 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flow-bin@^0.35.0: - version "0.35.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.35.0.tgz#63d4eb9582ce352541be98e6a424503217141b07" +flow-bin@^0.53.1: + version "0.53.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.53.1.tgz#9b22b63a23c99763ae533ebbab07f88c88c97d84" for-in@^0.1.5: version "0.1.6" @@ -2002,6 +2487,14 @@ fs-extra@~0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" +fs-extra@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + fs-readdir-recursive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" @@ -2034,6 +2527,14 @@ fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: mkdirp ">=0.5 0" rimraf "2" +function-bind@^1.0.2, function-bind@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + gauge@~2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.1.tgz#388473894fe8be5e13ffcdb8b93e4ed0616428c7" @@ -2058,6 +2559,18 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + getpass@^0.1.1: version "0.1.6" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" @@ -2077,30 +2590,31 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^5.0.5: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" +glob@^7.0.3, glob@^7.0.5: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: + fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "2 || 3" + minimatch "^3.0.2" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" +glob@^7.1.1, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.2" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" -globals@^9.0.0, globals@^9.2.0: - version "9.14.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" +globals@^9.17.0, globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" globby@^5.0.0: version "5.0.0" @@ -2113,6 +2627,16 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" @@ -2121,6 +2645,14 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + har-validator@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" @@ -2130,6 +2662,13 @@ har-validator@~2.0.6: is-my-json-valid "^2.12.4" pinkie-promise "^2.0.0" +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + has-ansi@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" @@ -2142,12 +2681,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-binary@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" - dependencies: - isarray "0.0.1" - has-binary@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" @@ -2166,10 +2699,33 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + hasha@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" @@ -2186,6 +2742,14 @@ hawk@~3.1.3: hoek "2.x.x" sntp "1.x.x" +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" @@ -2197,12 +2761,26 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -http-browserify@^1.3.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" dependencies: - Base64 "~0.2.0" - inherits "~2.0.1" + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" http-errors@~1.5.0: version "1.5.1" @@ -2212,22 +2790,38 @@ http-errors@~1.5.0: setprototypeof "1.0.2" statuses ">= 1.3.1 < 2" -http-proxy-middleware@~0.17.1: - version "0.17.2" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.2.tgz#572d517a6d2fb1063a469de294eed96066352007" +http-errors@~1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-proxy-middleware@~0.17.4: + version "0.17.4" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" dependencies: - http-proxy "^1.15.1" - is-glob "^3.0.0" - lodash "^4.16.2" + http-proxy "^1.16.2" + is-glob "^3.1.0" + lodash "^4.17.2" micromatch "^2.3.11" -http-proxy@^1.13.0, http-proxy@^1.15.1: +http-proxy@^1.13.0: version "1.15.2" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" dependencies: eventemitter3 "1.x.x" requires-port "1.x.x" +http-proxy@^1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -2236,11 +2830,19 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +iconv-lite@0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" + +iconv-lite@^0.4.17: + version "0.4.18" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" -iconv-lite@0.4.13, iconv-lite@~0.4.13: +iconv-lite@~0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" @@ -2248,14 +2850,20 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -ignore@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" +ignore@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" @@ -2267,7 +2875,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -2279,42 +2887,57 @@ ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" -inquirer@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" +inquirer@^3.0.6: + version "3.2.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.2.tgz#c2aaede1507cc54d826818737742d621bef2e823" dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" + ansi-escapes "^2.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" cli-width "^2.0.0" - figures "^1.3.5" + external-editor "^2.0.4" + figures "^2.0.0" lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" through "^2.3.6" -interpret@^0.6.4: - version "0.6.6" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" +internal-ip@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + dependencies: + meow "^3.3.0" interpret@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" -invariant@^2.2.0: +invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: loose-envify "^1.0.0" +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + ipaddr.js@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -2325,6 +2948,20 @@ is-buffer@^1.0.2: version "1.1.4" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + is-dotfile@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" @@ -2369,13 +3006,13 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" -is-glob@^3.0.0: +is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" dependencies: is-extglob "^2.1.0" -is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: +is-my-json-valid@^2.12.4: version "2.15.0" resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" dependencies: @@ -2418,20 +3055,34 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + is-resolvable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" dependencies: tryit "^1.0.1" -is-stream@^1.0.1: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -2440,6 +3091,10 @@ is-url@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -2456,6 +3111,10 @@ isexe@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -2473,9 +3132,9 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -jasmine-core@^2.4.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" +jasmine-core@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.7.0.tgz#50ff8c4f92d8ef5c0b2c1b846dd263ed85152091" jodid25519@^1.0.0: version "1.0.2" @@ -2487,17 +3146,25 @@ js-tokens@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" -js-yaml@^3.5.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" dependencies: argparse "^1.0.7" - esprima "^2.6.0" + esprima "^4.0.0" jsbn@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" +jschardet@^1.4.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9" + jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" @@ -2510,11 +3177,19 @@ json-loader@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" +json-loader@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: +json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" dependencies: @@ -2524,10 +3199,6 @@ json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json3@3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b" - json3@3.3.2, json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" @@ -2536,6 +3207,10 @@ json5@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -2558,16 +3233,15 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.3.6" -jsx-ast-utils@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.3.4.tgz#0257ed1cc4b1e65b39d7d9940f9fb4f20f7ba0a9" +jsx-ast-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.0.tgz#ec06a3d60cf307e5e119dac7bad81e89f096f0f8" dependencies: - acorn-jsx "^3.0.1" - object-assign "^4.1.0" + array-includes "^3.0.3" -karma-chrome-launcher@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-1.0.1.tgz#be5ae7c4264f9a0a2e22e3d984beb325ad92c8cb" +karma-chrome-launcher@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" dependencies: fs-access "^1.0.0" which "^1.2.1" @@ -2578,9 +3252,9 @@ karma-cli@1.0.1: dependencies: resolve "^1.1.6" -karma-firefox-launcher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.0.0.tgz#e08af3ce42e39860c2952ea7b7eaa64d63508bdc" +karma-firefox-launcher@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.0.1.tgz#ce58f47c2013a88156d55a5d61337c099cf5bb51" karma-ie-launcher@^1.0.0: version "1.0.0" @@ -2588,13 +3262,13 @@ karma-ie-launcher@^1.0.0: dependencies: lodash "^4.6.1" -karma-jasmine@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.0.2.tgz#c0b3ab327bf207db60e17fa27db37cfdef5d8e6c" +karma-jasmine@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.0.tgz#22e4c06bf9a182e5294d1f705e3733811b810acf" -karma-phantomjs-launcher@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz#19e1041498fd75563ed86730a22c1fe579fa8fb1" +karma-phantomjs-launcher@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2" dependencies: lodash "^4.0.1" phantomjs-prebuilt "^2.1.7" @@ -2603,9 +3277,9 @@ karma-phantomjs-shim@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/karma-phantomjs-shim/-/karma-phantomjs-shim-1.4.0.tgz#21072f436e07764a425fbbdc15175b537106e7ed" -karma-webpack@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-1.8.0.tgz#340c7999eb3745b47becab47d0d304dac2c55257" +karma-webpack@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.4.tgz#3e2d4f48ba94a878e1c66bb8e1ae6128987a175b" dependencies: async "~0.9.0" loader-utils "^0.2.5" @@ -2613,36 +3287,37 @@ karma-webpack@^1.7.0: source-map "^0.1.41" webpack-dev-middleware "^1.0.11" -karma@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-1.3.0.tgz#b2b94e8f499fadd0069d54f9aef4a4d48ec5cc1f" +karma@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.0.tgz#6f7a1a406446fa2e187ec95398698f4cee476269" dependencies: bluebird "^3.3.0" - body-parser "^1.12.4" + body-parser "^1.16.1" chokidar "^1.4.1" colors "^1.1.0" combine-lists "^1.0.0" - connect "^3.3.5" + connect "^3.6.0" core-js "^2.2.0" di "^0.0.1" dom-serialize "^2.2.0" expand-braces "^0.1.1" - glob "^7.0.3" + glob "^7.1.1" graceful-fs "^4.1.2" http-proxy "^1.13.0" isbinaryfile "^3.0.0" lodash "^3.8.0" log4js "^0.6.31" mime "^1.3.4" - minimatch "^3.0.0" + minimatch "^3.0.2" optimist "^0.6.1" qjobs "^1.1.4" range-parser "^1.2.0" - rimraf "^2.3.3" - socket.io "1.4.7" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "1.7.3" source-map "^0.5.3" - tmp "0.0.28" - useragent "^2.1.9" + tmp "0.0.31" + useragent "^2.1.12" kew@~0.7.0: version "0.7.0" @@ -2664,6 +3339,12 @@ lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -2671,7 +3352,30 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -loader-utils@^0.2.11, loader-utils@^0.2.5: +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^0.2.5: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: @@ -2680,22 +3384,33 @@ loader-utils@^0.2.11, loader-utils@^0.2.5: json5 "^0.5.0" object-assign "^4.0.1" -lodash.assign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" -lodash.pickby@^4.0.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" lodash@^3.8.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.2, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: version "4.17.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" +lodash@^4.17.2, lodash@^4.17.4: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + log4js@^0.6.31: version "0.6.38" resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" @@ -2703,6 +3418,10 @@ log4js@^0.6.31: readable-stream "~1.0.2" semver "~4.3.3" +loglevel@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.4.1.tgz#95b383f91a3c2756fd4ab093667e4309161f2bcd" + longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" @@ -2713,24 +3432,56 @@ loose-envify@^1.0.0, loose-envify@^1.1.0: dependencies: js-tokens "^2.0.0" +loose-envify@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lru-cache@2.2.x: version "2.2.4" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" -lru-cache@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.1.tgz#1343955edaf2e37d9b9e7ee7241e27c4b9fb72be" +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" dependencies: - pseudomap "^1.0.1" - yallist "^2.0.0" + pify "^2.3.0" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" -memory-fs@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" memory-fs@~0.3.0: version "0.3.0" @@ -2739,6 +3490,21 @@ memory-fs@~0.3.0: errno "^0.1.3" readable-stream "^2.0.1" +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -2765,13 +3531,20 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + "mime-db@>= 1.24.0 < 2", mime-db@~1.25.0: version "1.25.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" -mime-db@~1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" +mime-db@~1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: version "2.1.13" @@ -2779,27 +3552,45 @@ mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, dependencies: mime-db "~1.25.0" -mime-types@~2.0.4: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" +mime-types@~2.1.15: + version "2.1.16" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: - mime-db "~1.12.0" + mime-db "~1.29.0" mime@1.3.4, mime@^1.2.11, mime@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2: +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@^3.0.0, minimatch@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: brace-expansion "^1.0.0" +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.2.0: +minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -2809,7 +3600,7 @@ mkdirp@0.5.0: dependencies: minimist "0.0.8" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -2823,9 +3614,24 @@ ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" -mute-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + +multicast-dns@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde" + dependencies: + dns-packet "^1.0.1" + thunky "^0.1.0" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" nan@^2.3.0: version "2.4.0" @@ -2835,10 +3641,6 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" -negotiator@0.4.9: - version "0.4.9" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f" - negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -2850,32 +3652,36 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-libs-browser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" +node-forge@0.6.33: + version "0.6.33" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" + +node-libs-browser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" dependencies: assert "^1.1.1" - browserify-zlib "~0.1.4" - buffer "^4.9.0" + browserify-zlib "^0.1.4" + buffer "^4.3.0" console-browserify "^1.1.0" - constants-browserify "0.0.1" - crypto-browserify "~3.2.6" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" domain-browser "^1.1.1" events "^1.0.0" - http-browserify "^1.3.2" - https-browserify "0.0.0" - os-browserify "~0.1.2" + https-browserify "0.0.1" + os-browserify "^0.2.0" path-browserify "0.0.0" process "^0.11.0" punycode "^1.2.4" - querystring-es3 "~0.2.0" - readable-stream "^1.1.13" - stream-browserify "^1.0.0" - string_decoder "~0.10.25" - timers-browserify "^1.0.1" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" tty-browserify "0.0.0" - url "~0.10.1" - util "~0.10.3" + url "^0.11.0" + util "^0.10.3" vm-browserify "0.0.4" node-pre-gyp@^0.6.29: @@ -2902,10 +3708,25 @@ nopt@~3.0.6: dependencies: abbrev "1" +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + npmlog@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.1.tgz#d14f503b4cd79710375553004ba96e6662fbc0b8" @@ -2927,14 +3748,14 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@4.1.0, object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" @@ -2950,6 +3771,10 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -2972,15 +3797,24 @@ once@~1.3.3: dependencies: wrappy "1" -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" open@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" -optimist@^0.6.1, optimist@~0.6.0, optimist@~0.6.1: +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: @@ -3008,23 +3842,37 @@ original@>=0.0.5: dependencies: url-parse "1.0.x" -os-browserify@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" -os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: +os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -output-file-sync@^1.1.0: +output-file-sync@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" dependencies: @@ -3032,10 +3880,38 @@ output-file-sync@^1.1.0: mkdirp "^0.5.1" object-assign "^4.1.0" +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-map@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -3045,21 +3921,27 @@ parse-glob@^3.0.4: is-extglob "^1.0.0" is-glob "^2.0.0" -parsejson@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc" +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" dependencies: better-assert "~1.0.0" -parseqs@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7" +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" dependencies: better-assert "~1.0.0" -parseuri@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350" +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" dependencies: better-assert "~1.0.0" @@ -3077,27 +3959,73 @@ path-exists@^2.0.0: dependencies: pinkie-promise "^2.0.0" -path-is-absolute@^1.0.0: +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.1: +path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" -pbkdf2-compat@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +pbkdf2@^3.0.3: + version "3.0.13" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" -phantomjs-prebuilt@>=2.1, phantomjs-prebuilt@^2.1.7: +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +phantomjs-prebuilt@^2.1.15: + version "2.1.15" + resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.15.tgz#20f86e82d3349c505917527745b7a411e08b3903" + dependencies: + es6-promise "~4.0.3" + extract-zip "~1.6.5" + fs-extra "~1.0.0" + hasha "~2.2.0" + kew "~0.7.0" + progress "~1.1.8" + request "~2.81.0" + request-progress "~2.0.1" + which "~1.2.10" + +phantomjs-prebuilt@^2.1.7: version "2.1.13" resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.13.tgz#66556ad9e965d893ca5a7dc9e763df7e8697f76d" dependencies: @@ -3111,10 +4039,14 @@ phantomjs-prebuilt@>=2.1, phantomjs-prebuilt@^2.1.7: request-progress "~2.0.1" which "~1.2.10" -pify@^2.0.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -3125,15 +4057,23 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" dependencies: - find-up "^1.0.0" + find-up "^2.1.0" -pluralize@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" +pluralize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-4.0.0.tgz#59b708c1c0190a2f692f1c7618c446b052fd1762" + +portfinder@^1.0.9: + version "1.0.13" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" power-assert-context-formatter@^1.0.7: version "1.1.1" @@ -3213,21 +4153,22 @@ power-assert-util-string-width@^1.1.1: dependencies: eastasianwidth "^0.1.1" -power-assert@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.4.2.tgz#43319cd0fecd3221f276f1cc49ffa2eaeb9a1815" +power-assert@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.4.4.tgz#9295ea7437196f5a601fde420f042631186d7517" dependencies: define-properties "^1.1.2" - empower "^1.1.0" + empower "^1.2.3" power-assert-formatter "^1.3.1" universal-deep-strict-equal "^1.2.1" xtend "^4.0.0" -pre-commit@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.1.3.tgz#6d5ed90740472072958c711a15f676aa2c231377" +pre-commit@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" dependencies: - cross-spawn "2.0.x" + cross-spawn "^5.0.1" + spawn-sync "^1.0.15" which "1.2.x" prelude-ls@~1.1.2: @@ -3238,19 +4179,27 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -private@^0.1.6, private@~0.1.5: +private@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" +private@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" -process@^0.11.0, process@~0.11.0: +process@^0.11.0: version "0.11.9" resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" -progress@^1.1.8, progress@~1.1.8: +progress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + +progress@~1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" @@ -3260,11 +4209,12 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.5.8: - version "15.5.8" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" +prop-types@^15.5.10: + version "15.5.10" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" dependencies: fbjs "^0.8.9" + loose-envify "^1.3.1" proxy-addr@~1.1.2: version "1.1.2" @@ -3277,10 +4227,20 @@ prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" -pseudomap@^1.0.1: +pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -3297,11 +4257,15 @@ qs@6.2.0, qs@~6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" +qs@6.4.0, qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + qs@~6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" -querystring-es3@~0.2.0: +querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -3313,6 +4277,10 @@ querystringify@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" +querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + randomatic@^1.1.3: version "1.1.5" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" @@ -3320,16 +4288,22 @@ randomatic@^1.1.3: is-number "^2.0.2" kind-of "^3.0.2" +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" + dependencies: + safe-buffer "^5.1.0" + range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -raw-body@~2.1.7: - version "2.1.7" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774" +raw-body@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" dependencies: bytes "2.4.0" - iconv-lite "0.4.13" + iconv-lite "0.4.15" unpipe "1.0.0" rc@~1.1.6: @@ -3341,40 +4315,58 @@ rc@~1.1.6: minimist "^1.2.0" strip-json-comments "~1.0.4" -react-addons-test-utils@^15.4.0: - version "15.4.0" - resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.4.0.tgz#bd326904916b80de6a466248ef52cdfc1799e963" - -react-dom@^15.2.1: - version "15.4.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.0.tgz#6a97a69000966570db48c746bc4b7b0ca50d1534" +react-dom@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" dependencies: - fbjs "^0.8.1" + fbjs "^0.8.9" loose-envify "^1.1.0" object-assign "^4.1.0" + prop-types "^15.5.10" -react-frame-component@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-0.6.2.tgz#748a7f9deac0693f824eefd28dcee2f9529ffe1a" - dependencies: - object-assign "^3.0.0" +react-frame-component@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-1.1.1.tgz#05b7f5689a2d373f25baf0c9adb0e59d78103388" -react@^15.2.1: - version "15.4.0" - resolved "https://registry.yarnpkg.com/react/-/react-15.4.0.tgz#736c1c7c542e8088127106e1f450b010f86d172b" +react@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df" dependencies: - fbjs "^0.8.4" + create-react-class "^15.6.0" + fbjs "^0.8.9" loose-envify "^1.1.0" object-assign "^4.1.0" + prop-types "^15.5.10" -readable-stream@^1.0.27-1, readable-stream@^1.1.13: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" "readable-stream@^2.0.0 || ^1.1.13", readable-stream@~2.1.4: version "2.1.5" @@ -3399,6 +4391,18 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@~2.0.0, readable string_decoder "~0.10.x" util-deprecate "~1.0.1" +readable-stream@^2.0.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + readable-stream@~1.0.2: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -3417,28 +4421,37 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" -readline2@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" dependencies: - resolve "^1.1.6" + indent-string "^2.1.0" + strip-indent "^1.0.1" regenerate@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + regenerator-runtime@^0.9.5: version "0.9.6" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + regex-cache@^0.4.2: version "0.4.3" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" @@ -3539,7 +4552,42 @@ request@~2.74.0: tough-cookie "~2.3.0" tunnel-agent "~0.4.1" -require-uncached@^1.0.2: +request@~2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + 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" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" dependencies: @@ -3558,12 +4606,12 @@ resolve@^1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" + onetime "^2.0.0" + signal-exit "^3.0.2" right-align@^0.1.1: version "0.1.3" @@ -3571,25 +4619,58 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@~2.5.1, rimraf@~2.5.4: +rimraf@2, rimraf@^2.2.8, rimraf@~2.5.1, rimraf@~2.5.4: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: glob "^7.0.5" -ripemd160@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" +rimraf@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" dependencies: - once "^1.3.0" + hash-base "^2.0.0" + inherits "^2.0.1" -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +selfsigned@^1.9.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.1.tgz#bf8cb7b83256c4551e31347c6311778db99eec52" + dependencies: + node-forge "0.6.33" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" semver@^5.3.0, semver@~5.3.0: version "5.3.0" @@ -3638,7 +4719,7 @@ serve-static@~1.11.1: parseurl "~1.3.1" send "0.14.1" -set-blocking@~2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -3646,7 +4727,7 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" -setimmediate@^1.0.5: +setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -3654,22 +4735,34 @@ setprototypeof@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" -sha.js@2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" -shelljs@^0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.5.tgz#2eef7a50a21e1ccf37da00df767ec69e30ad0675" +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" + inherits "^2.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" signal-exit@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" +signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -3684,87 +4777,77 @@ sntp@1.x.x: dependencies: hoek "2.x.x" -socket.io-adapter@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f" +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" dependencies: - debug "2.2.0" - socket.io-parser "2.2.2" + debug "2.3.3" + socket.io-parser "2.3.1" -socket.io-client@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.4.6.tgz#49b0ba537efd15b8297c84016e642e1c7c752c3d" +socket.io-client@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" dependencies: backo2 "1.0.2" component-bind "1.0.0" - component-emitter "1.2.0" - debug "2.2.0" - engine.io-client "1.6.9" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.3" has-binary "0.1.7" indexof "0.0.1" object-component "0.0.3" - parseuri "0.0.4" - socket.io-parser "2.2.6" + parseuri "0.0.5" + socket.io-parser "2.3.1" to-array "0.1.4" -socket.io-parser@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417" - dependencies: - benchmark "1.0.0" - component-emitter "1.1.2" - debug "0.7.4" - isarray "0.0.1" - json3 "3.2.6" - -socket.io-parser@2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99" +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" dependencies: - benchmark "1.0.0" component-emitter "1.1.2" debug "2.2.0" isarray "0.0.1" json3 "3.3.2" -socket.io@1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.4.7.tgz#92b7f7cb88c5797d4daee279fe8075dbe6d3fa1c" +socket.io@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" dependencies: - debug "2.2.0" - engine.io "1.6.10" + debug "2.3.3" + engine.io "1.8.3" has-binary "0.1.7" - socket.io-adapter "0.4.0" - socket.io-client "1.4.6" - socket.io-parser "2.2.6" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.3" + socket.io-parser "2.3.1" -sockjs-client@^1.0.3: - version "1.1.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" +sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" dependencies: - debug "^2.2.0" - eventsource "~0.1.6" + debug "^2.6.6" + eventsource "0.1.6" faye-websocket "~0.11.0" inherits "^2.0.1" json3 "^3.3.2" - url-parse "^1.1.1" + url-parse "^1.1.8" -sockjs@^0.3.15: +sockjs@0.3.18: version "0.3.18" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" dependencies: faye-websocket "^0.10.0" uuid "^2.0.2" -source-list-map@~0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" -source-map-support@^0.4.2: - version "0.4.6" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.6.tgz#32552aa64b458392a85eab3b0b5ee61527167aeb" +source-map-support@^0.4.15: + version "0.4.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8" dependencies: - source-map "^0.5.3" + source-map "^0.5.6" source-map@^0.1.41: version "0.1.43" @@ -3776,19 +4859,54 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" -source-map@~0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" +source-map@^0.5.6, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -spawn-sync@1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.13.tgz#904091b9ad48a0f3afb0e84752154c01e82fd8d8" +spawn-sync@^1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" dependencies: concat-stream "^1.4.7" os-shim "^0.1.2" +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +spdy-transport@^2.0.18: + version "2.0.20" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -3808,31 +4926,37 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -static-server@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/static-server/-/static-server-2.0.3.tgz#bd9049ec62a26acb6f5bb63493070de54b3165ee" +static-server@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/static-server/-/static-server-2.0.5.tgz#a42e4735d04336bf0f588e606e8829760e71141b" dependencies: chalk "^0.5.1" commander "^2.3.0" file-size "0.0.5" mime "^1.2.11" -"statuses@>= 1.3.1 < 2", statuses@~1.3.0: +"statuses@>= 1.3.1 < 2", statuses@~1.3.0, statuses@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" -stream-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" dependencies: inherits "~2.0.1" - readable-stream "^1.0.27-1" + readable-stream "^2.0.2" -stream-cache@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stream-cache/-/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" +stream-http@^2.3.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.2.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" -string-width@^1.0.1: +string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: @@ -3847,10 +4971,23 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" -string_decoder@~0.10.25, string_decoder@~0.10.x: +string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^0.10.25, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + stringifier@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" @@ -3875,14 +5012,40 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" -strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + supports-color@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" @@ -3891,15 +5054,21 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.0, supports-color@^3.1.1: +supports-color@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: has-flag "^1.0.0" -table@^3.7.8: - version "3.8.3" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" +supports-color@^4.0.0, supports-color@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" + dependencies: + has-flag "^2.0.0" + +table@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435" dependencies: ajv "^4.7.0" ajv-keywords "^1.0.0" @@ -3908,9 +5077,9 @@ table@^3.7.8: slice-ansi "0.0.4" string-width "^2.0.0" -tapable@^0.1.8, tapable@~0.1.8: - version "0.1.10" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" tar-pack@~3.3.0: version "3.3.0" @@ -3945,26 +5114,48 @@ through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" +thunky@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" + +time-stamp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" + +timers-browserify@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" dependencies: - process "~0.11.0" + setimmediate "^1.0.4" -tmp@0.0.28: - version "0.0.28" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" +tmp@0.0.31, tmp@^0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" dependencies: os-tmpdir "~1.0.1" +tmp@0.0.x: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + to-fast-properties@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + tough-cookie@~2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" @@ -3975,6 +5166,14 @@ traverse@^0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" @@ -3983,6 +5182,12 @@ tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + tunnel-agent@~0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" @@ -4004,35 +5209,57 @@ type-is@~1.6.13: media-typer "0.3.0" mime-types "~2.1.13" +type-is@~1.6.15: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + type-name@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" -typedarray@~0.0.5: +typedarray@^0.0.6, typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.3.2.tgz#f0f045e196f69a72f06b25fd3bd39d01c3ce9984" +typescript@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.2.tgz#f8395f85d459276067c988aa41837a8f82870844" ua-parser-js@^0.7.9: version "0.7.12" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" -uglify-js@^2.7.0, uglify-js@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" +uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: - async "~0.2.6" source-map "~0.5.1" - uglify-to-browserify "~1.0.0" yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@^3.0.28: + version "3.0.28" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.28.tgz#96b8495f0272944787b5843a1679aa326640d5f7" + dependencies: + commander "~2.11.0" + source-map "~0.5.1" uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + uid-number@~0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -4060,16 +5287,16 @@ url-parse@1.0.x: querystringify "0.0.x" requires-port "1.0.x" -url-parse@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" +url-parse@^1.1.8: + version "1.1.9" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" dependencies: - querystringify "0.0.x" + querystringify "~1.0.0" requires-port "1.0.x" -url@~0.10.1: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" dependencies: punycode "1.3.2" querystring "0.2.0" @@ -4078,27 +5305,18 @@ user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - dependencies: - os-homedir "^1.0.0" - -useragent@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.1.9.tgz#4dba2bc4dad1875777ab15de3ff8098b475000b7" +useragent@^2.1.12: + version "2.2.1" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" dependencies: lru-cache "2.2.x" - -utf8@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5" + tmp "0.0.x" util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -util@0.10.3, util@~0.10.3: +util@0.10.3, util@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: @@ -4116,12 +5334,19 @@ uuid@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728" -v8flags@^2.0.10: - version "2.0.11" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" dependencies: user-home "^1.1.1" +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + vary@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" @@ -4142,22 +5367,21 @@ void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" -watchpack@^0.2.1: - version "0.2.9" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" dependencies: - async "^0.9.0" - chokidar "^1.0.0" + async "^2.1.2" + chokidar "^1.7.0" graceful-fs "^4.1.2" -webpack-core@~0.6.0: - version "0.6.8" - resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" dependencies: - source-list-map "~0.1.0" - source-map "~0.4.1" + minimalistic-assert "^1.0.0" -webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.4.0: +webpack-dev-middleware@^1.0.11: version "1.8.4" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" dependencies: @@ -4166,43 +5390,77 @@ webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.4.0: path-is-absolute "^1.0.0" range-parser "^1.0.3" -webpack-dev-server@^1.14.1: - version "1.16.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-1.16.2.tgz#8bebc2c4ce1c45a15c72dd769d9ba08db306a793" +webpack-dev-middleware@^1.11.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" + dependencies: + memory-fs "~0.4.1" + mime "^1.3.4" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-dev-server@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz#21580f5a08cd065c71144cf6f61c345bca59a8b8" dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^1.6.0" compression "^1.5.2" connect-history-api-fallback "^1.3.0" + del "^3.0.0" express "^4.13.3" - http-proxy-middleware "~0.17.1" - open "0.0.5" - optimist "~0.6.1" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + internal-ip "^1.2.0" + ip "^1.1.5" + loglevel "^1.4.1" + opn "4.0.2" + portfinder "^1.0.9" + selfsigned "^1.9.1" serve-index "^1.7.2" - sockjs "^0.3.15" - sockjs-client "^1.0.3" - stream-cache "~0.0.1" + sockjs "0.3.18" + sockjs-client "1.1.4" + spdy "^3.4.1" strip-ansi "^3.0.0" supports-color "^3.1.1" - webpack-dev-middleware "^1.4.0" - -webpack@^1.13.1: - version "1.13.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.13.3.tgz#e79c46fe5a37c5ca70084ba0894c595cdcb42815" - dependencies: - acorn "^3.0.0" - async "^1.3.0" - clone "^1.0.2" - enhanced-resolve "~0.9.0" - interpret "^0.6.4" - loader-utils "^0.2.11" - memory-fs "~0.3.0" + webpack-dev-middleware "^1.11.0" + yargs "^6.0.0" + +webpack-sources@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" + dependencies: + source-list-map "^2.0.0" + source-map "~0.5.3" + +webpack@^3.5.5: + version "3.5.5" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.5.tgz#3226f09fc8b3e435ff781e7af34f82b68b26996c" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" mkdirp "~0.5.0" - node-libs-browser "^0.6.0" - optimist "~0.6.0" - supports-color "^3.1.0" - tapable "~0.1.8" - uglify-js "~2.7.3" - watchpack "^0.2.1" - webpack-core "~0.6.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" websocket-driver@>=0.5.1: version "0.6.5" @@ -4218,12 +5476,26 @@ whatwg-fetch@>=0.10.0: version "2.0.1" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.1.tgz#078b9461bbe91cea73cbce8bb122a05f9e92b772" -which@1.2.x, which@^1.2.1, which@^1.2.8, which@~1.2.10: +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@1.2.x, which@^1.2.1, which@~1.2.10: version "1.2.12" resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" dependencies: isexe "^1.1.1" +which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" @@ -4246,6 +5518,13 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -4256,24 +5535,80 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -ws@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.0.1.tgz#7d0b2a2e58cddd819039c29c9de65045e1b310e9" +ws@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" dependencies: options ">=0.0.5" ultron "1.0.x" -xmlhttprequest-ssl@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67" +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" xtend@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" -yallist@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@^6.0.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" yargs@~3.10.0: version "3.10.0" From 55f701e2ac33802c920c5933e4bce7a23251c0ef Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 13:53:11 -0400 Subject: [PATCH 253/412] fix(bounds): Pass bounded x/y in Draggable callbacks Backport #226 --- lib/Draggable.js | 4 ++-- specs/draggable.spec.jsx | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index 36c5b55e..dd0cb888 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -261,8 +261,8 @@ export default class Draggable extends React.Component +
+ + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + + }); + it('should call back with offset left/top, not client', function () { function onDrag(event, data) { assert(data.x === 100); From 107280487e8887a4e71ca93348ef5d25bd930426 Mon Sep 17 00:00:00 2001 From: Daniel Herbolt Date: Thu, 29 Jun 2017 16:15:24 +0200 Subject: [PATCH 254/412] + scroll works in Google Chrome. We have to use transparent selection instead of user-select:none --- lib/DraggableCore.js | 11 +++++++++-- lib/utils/domFns.js | 31 +++++++++++++++++++++++-------- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 77d74831..647528eb 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -223,7 +223,7 @@ export default class DraggableCore extends React.Component>>>>>> + scroll works in Google Chrome. We have to use transparent selection instead of user-select:none:lib/DraggableCore.es6 log('DraggableCore: handleDragStop: %j', coreEvent); diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 7e9376ac..b1631109 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -133,17 +133,32 @@ const userSelectStyle = `;${userSelect}: none;`; const userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE // Note we're passing `document` b/c we could be iframed -export function addUserSelectStyles(body: ?HTMLElement) { - if (!body) return; - const style = body.getAttribute('style') || ''; - if (userSelectReplaceRegExp.test(style)) return; // don't add twice - body.setAttribute('style', style + userSelectStyle); +export function addUserSelectStyles(doc: HTMLElement) { + const isChrome = Boolean(window.chrome); + + if (!isChrome) { + const style = doc.body.getAttribute('style') || ''; + if (userSelectReplaceRegExp.test(style)) return; // don't add twice + doc.body.setAttribute('style', style + userSelectStyle); + } + else { + let styleEl = doc.getElementById('react-draggable-style-el'); + if (!styleEl) { + styleEl = doc.createElement('style'); + styleEl.type = 'text/css'; + styleEl.id = 'react-draggable-style-el'; + styleEl.innerHTML = '.react-draggable-transparent-selection *::selection { background: transparent; }'; + doc.getElementsByTagName('head')[0].appendChild(styleEl); + } + + doc.body.classList.add('react-draggable-transparent-selection'); + } } -export function removeUserSelectStyles(body: ?HTMLElement) { - if (!body) return; +export function removeUserSelectStyles(doc: HTMLElement) { const style = body.getAttribute('style') || ''; - body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); + doc.body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); + doc.body.classList && body.classList.remove('react-draggable-transparent-selection'); } export function styleHacks(childStyle: Object = {}): Object { From 4cf9c9ebc30edb54adde8bb5163792b19b8cac0b Mon Sep 17 00:00:00 2001 From: Daniel Herbolt Date: Fri, 30 Jun 2017 09:15:02 +0200 Subject: [PATCH 255/412] Transparent selection used for all browser --- lib/utils/domFns.js | 42 ++++------ lib/utils/getPrefix.js | 4 - specs/draggable.spec.jsx | 160 +++++++++++++++++++-------------------- 3 files changed, 94 insertions(+), 112 deletions(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index b1631109..e6718eaf 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -1,6 +1,6 @@ // @flow import {findInArray, isFunction, int} from './shims'; -import browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix'; +import browserPrefix, {browserPrefixToKey} from './getPrefix'; import type {ControlPosition} from './types'; @@ -127,38 +127,24 @@ export function getTouchIdentifier(e: MouseTouchEvent): ?number { // User-select Hacks: // // Useful for preventing blue highlights all over everything when dragging. -const userSelectPrefix = getPrefix('user-select'); -const userSelect = browserPrefixToStyle('user-select', userSelectPrefix); -const userSelectStyle = `;${userSelect}: none;`; -const userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE // Note we're passing `document` b/c we could be iframed -export function addUserSelectStyles(doc: HTMLElement) { - const isChrome = Boolean(window.chrome); - - if (!isChrome) { - const style = doc.body.getAttribute('style') || ''; - if (userSelectReplaceRegExp.test(style)) return; // don't add twice - doc.body.setAttribute('style', style + userSelectStyle); - } - else { - let styleEl = doc.getElementById('react-draggable-style-el'); - if (!styleEl) { - styleEl = doc.createElement('style'); - styleEl.type = 'text/css'; - styleEl.id = 'react-draggable-style-el'; - styleEl.innerHTML = '.react-draggable-transparent-selection *::selection { background: transparent; }'; - doc.getElementsByTagName('head')[0].appendChild(styleEl); - } - - doc.body.classList.add('react-draggable-transparent-selection'); +export function addUserSelectStyles(doc: Document) { + let styleEl = doc.getElementById('react-draggable-style-el'); + if (!styleEl) { + styleEl = doc.createElement('style'); + styleEl.type = 'text/css'; + styleEl.id = 'react-draggable-style-el'; + styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\n'; + styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; + doc.getElementsByTagName('head')[0].appendChild(styleEl); } + doc.body.classList.add('react-draggable-transparent-selection'); } -export function removeUserSelectStyles(doc: HTMLElement) { - const style = body.getAttribute('style') || ''; - doc.body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); - doc.body.classList && body.classList.remove('react-draggable-transparent-selection'); +export function removeUserSelectStyles(doc: Document) { + doc.body.classList && doc.body.classList.remove('react-draggable-transparent-selection'); + window.getSelection().removeAllRanges(); // remove selection caused by scroll } export function styleHacks(childStyle: Object = {}): Object { diff --git a/lib/utils/getPrefix.js b/lib/utils/getPrefix.js index a8ea7fe3..16eea09a 100644 --- a/lib/utils/getPrefix.js +++ b/lib/utils/getPrefix.js @@ -21,10 +21,6 @@ export function browserPrefixToKey(prop: string, prefix: string): string { return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop; } -export function browserPrefixToStyle(prop: string, prefix: string): string { - return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop; -} - function kebabToTitleCase(str: string): string { let out = ''; let shouldCapitalize = true; diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index bd7bdf77..33f38efa 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -320,58 +320,58 @@ describe('react-draggable', function () { assert(transform.indexOf('translate(100,100)') >= 0); }); - it('should add and remove user-select styles', function () { - const userSelectStyleStr = `${userSelectStyle}: none;`; - - drag = TestUtils.renderIntoDocument( - -
- - ); - - const node = ReactDOM.findDOMNode(drag); - - assert(!document.body.getAttribute('style')); - TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(document.body.getAttribute('style').indexOf(userSelectStyleStr) !== -1); - TestUtils.Simulate.mouseUp(node); - assert(!document.body.getAttribute('style')); - }); - - it('should not add and remove user-select styles when disabled', function () { - - drag = TestUtils.renderIntoDocument( - -
- - ); - - const node = ReactDOM.findDOMNode(drag); - - assert(!document.body.getAttribute('style')); - TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(!document.body.getAttribute('style')); - TestUtils.Simulate.mouseUp(node); - assert(!document.body.getAttribute('style')); - }); - - it('should not add and remove user-select styles when onStart returns false', function () { - function onStart() { return false; } - - drag = TestUtils.renderIntoDocument( - -
- - ); - - const node = ReactDOM.findDOMNode(drag); - - assert(!document.body.getAttribute('style')); - TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(!document.body.getAttribute('style')); - TestUtils.Simulate.mouseUp(node); - assert(!document.body.getAttribute('style')); - }); + it('should add and remove transparent selection class', function () { + const userSelectStyleStr = `${userSelectStyle}: none;`; + + drag = TestUtils.renderIntoDocument( + +
+ + ); + + const node = ReactDOM.findDOMNode(drag); + + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseUp(node); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + }); + + it('should not add and remove transparent selection class when disabled', function () { + + drag = TestUtils.renderIntoDocument( + +
+ + ); + + const node = ReactDOM.findDOMNode(drag); + + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseUp(node); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + }); + + it('should not add and remove transparent selection class when onStart returns false', function () { + function onStart() { return false; } + + drag = TestUtils.renderIntoDocument( + +
+ + ); + + const node = ReactDOM.findDOMNode(drag); + + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseUp(node); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + }); it('should be draggable when in an iframe', function (done) { let dragged = false; @@ -397,35 +397,35 @@ describe('react-draggable', function () { }, 50); }); - it('should add and remove user-select styles to iframe’s body when in an iframe', function (done) { - const userSelectStyleStr = `${userSelectStyle}: none;`; + it('should add and remove transparent selection class to iframe’s body when in an iframe', function (done) { + const userSelectStyleStr = `${userSelectStyle}: none;`; - const dragElement = ( - -
- - ); - const renderRoot = document.body.appendChild(document.createElement('div')); - const frame = ReactDOM.render({ dragElement }, renderRoot); - - setTimeout(() => { - const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; - const node = iframeDoc.querySelector('.react-draggable'); - iframeDoc.body.setAttribute('style', ''); - - assert(!iframeDoc.body.getAttribute('style')); - assert(!document.body.getAttribute('style')); - TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(iframeDoc.body.getAttribute('style').indexOf(userSelectStyleStr) !== -1); - assert(!document.body.getAttribute('style')); - TestUtils.Simulate.mouseUp(node); - assert(!iframeDoc.body.getAttribute('style')); - assert(!document.body.getAttribute('style')); - - renderRoot.parentNode.removeChild(renderRoot); - done(); - }, 50); - }); + const dragElement = ( + +
+ + ); + const renderRoot = document.body.appendChild(document.createElement('div')); + const frame = ReactDOM.render({ dragElement }, renderRoot); + + setTimeout(() => { + const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; + const node = iframeDoc.querySelector('.react-draggable'); + iframeDoc.body.setAttribute('style', ''); + + assert(!iframeDoc.body.getAttribute('style')); + assert(!document.body.getAttribute('style')); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(iframeDoc.body.getAttribute('style').indexOf(userSelectStyleStr) !== -1); + assert(!document.body.getAttribute('style')); + TestUtils.Simulate.mouseUp(node); + assert(!iframeDoc.body.getAttribute('style')); + assert(!document.body.getAttribute('style')); + + renderRoot.parentNode.removeChild(renderRoot); + done(); + }, 50); + }); }); describe('interaction', function () { From 6ba32037d9042a6bdf0d8912b17a3fc43da57ab1 Mon Sep 17 00:00:00 2001 From: Daniel Herbolt Date: Fri, 30 Jun 2017 13:27:30 +0200 Subject: [PATCH 256/412] Fixed tests: --- specs/draggable.spec.jsx | 35 +++++++---------------------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 33f38efa..534a68bc 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -6,10 +6,6 @@ import Draggable, {DraggableCore} from '../index'; import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; import _ from 'lodash'; -import {getPrefix, browserPrefixToKey, browserPrefixToStyle} from '../lib/utils/getPrefix'; -const transformStyle = browserPrefixToStyle('transform', getPrefix('transform')); -const transformKey = browserPrefixToKey('transform', getPrefix('transform')); -const userSelectStyle = browserPrefixToStyle('user-select', getPrefix('user-select')); describe('react-draggable', function () { var drag; @@ -47,18 +43,6 @@ describe('react-draggable', function () { assert(typeof drag.props.onStop === 'function'); }); - it('should pass style and className properly from child', function () { - drag = (
); - - const node = renderToNode(drag); - if ('touchAction' in document.body.style) { - assert(node.getAttribute('style').indexOf('touch-action: none') >= 0); - } - assert(node.getAttribute('style').indexOf('color: black') >= 0); - assert(node.getAttribute('style').indexOf(transformStyle + ': translate(0px, 0px)') >= 0); - assert(node.getAttribute('class') === 'foo react-draggable'); - }); - it('should set the appropriate custom className when dragging or dragged', function () { drag = TestUtils.renderIntoDocument( @@ -321,8 +305,6 @@ describe('react-draggable', function () { }); it('should add and remove transparent selection class', function () { - const userSelectStyleStr = `${userSelectStyle}: none;`; - drag = TestUtils.renderIntoDocument(
@@ -398,8 +380,6 @@ describe('react-draggable', function () { }); it('should add and remove transparent selection class to iframe’s body when in an iframe', function (done) { - const userSelectStyleStr = `${userSelectStyle}: none;`; - const dragElement = (
@@ -411,16 +391,15 @@ describe('react-draggable', function () { setTimeout(() => { const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; const node = iframeDoc.querySelector('.react-draggable'); - iframeDoc.body.setAttribute('style', ''); - assert(!iframeDoc.body.getAttribute('style')); - assert(!document.body.getAttribute('style')); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(iframeDoc.body.getAttribute('style').indexOf(userSelectStyleStr) !== -1); - assert(!document.body.getAttribute('style')); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(iframeDoc.body.classList.contains('react-draggable-transparent-selection')); TestUtils.Simulate.mouseUp(node); - assert(!iframeDoc.body.getAttribute('style')); - assert(!document.body.getAttribute('style')); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); renderRoot.parentNode.removeChild(renderRoot); done(); From 327497ef958868ddb138f3bc6bf9e1baf7c88c5b Mon Sep 17 00:00:00 2001 From: Daniel Herbolt Date: Fri, 30 Jun 2017 13:35:29 +0200 Subject: [PATCH 257/412] Lint errors --- specs/draggable.spec.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 534a68bc..7484f4df 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -392,13 +392,13 @@ describe('react-draggable', function () { const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; const node = iframeDoc.querySelector('.react-draggable'); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); assert(iframeDoc.body.classList.contains('react-draggable-transparent-selection')); TestUtils.Simulate.mouseUp(node); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); renderRoot.parentNode.removeChild(renderRoot); From e9ffd05b11442a89fbb59c4ab35441667737c18b Mon Sep 17 00:00:00 2001 From: Daniel Herbolt Date: Mon, 3 Jul 2017 08:08:22 +0200 Subject: [PATCH 258/412] ClassName used for legacy browsers --- lib/utils/domFns.js | 24 ++++++++++++++++++++++-- lib/utils/getPrefix.js | 4 ++++ specs/draggable.spec.jsx | 18 +++++++++++++++++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index e6718eaf..c47f0165 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -139,11 +139,11 @@ export function addUserSelectStyles(doc: Document) { styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; doc.getElementsByTagName('head')[0].appendChild(styleEl); } - doc.body.classList.add('react-draggable-transparent-selection'); + addClassName(doc.body, 'react-draggable-transparent-selection'); } export function removeUserSelectStyles(doc: Document) { - doc.body.classList && doc.body.classList.remove('react-draggable-transparent-selection'); + removeClassName(doc.body, 'react-draggable-transparent-selection'); window.getSelection().removeAllRanges(); // remove selection caused by scroll } @@ -155,3 +155,23 @@ export function styleHacks(childStyle: Object = {}): Object { ...childStyle }; } + +export function addClassName(el: HTMLElement, className: string) { + if (el.classList) { + el.classList.add(className); + } + else { + if (!el.className.match(new RegExp(`(?:^|\\s)${className}(?!\\S)`))) { + el.className += ` ${className}`; + } + } +} + +export function removeClassName(el: HTMLElement, className: string) { + if (el.classList) { + el.classList.remove(className); + } + else { + el.className = el.className.replace(new RegExp(`(?:^|\\s)${className}(?!\\S)`, 'g'), ''); + } +} diff --git a/lib/utils/getPrefix.js b/lib/utils/getPrefix.js index 16eea09a..a8ea7fe3 100644 --- a/lib/utils/getPrefix.js +++ b/lib/utils/getPrefix.js @@ -21,6 +21,10 @@ export function browserPrefixToKey(prop: string, prefix: string): string { return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop; } +export function browserPrefixToStyle(prop: string, prefix: string): string { + return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop; +} + function kebabToTitleCase(str: string): string { let out = ''; let shouldCapitalize = true; diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 7484f4df..34f7c701 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -6,6 +6,10 @@ import Draggable, {DraggableCore} from '../index'; import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; import _ from 'lodash'; +import {getPrefix, browserPrefixToKey, browserPrefixToStyle} from '../lib/utils/getPrefix'; +const transformStyle = browserPrefixToStyle('transform', getPrefix('transform')); +const transformKey = browserPrefixToKey('transform', getPrefix('transform')); +const userSelectStyle = browserPrefixToStyle('user-select', getPrefix('user-select')); describe('react-draggable', function () { var drag; @@ -43,6 +47,18 @@ describe('react-draggable', function () { assert(typeof drag.props.onStop === 'function'); }); + it('should pass style and className properly from child', function () { + drag = (
); + + const node = renderToNode(drag); + if ('touchAction' in document.body.style) { + assert(node.getAttribute('style').indexOf('touch-action: none') >= 0); + } + assert(node.getAttribute('style').indexOf('color: black') >= 0); + assert(node.getAttribute('style').indexOf(transformStyle + ': translate(0px, 0px)') >= 0); + assert(node.getAttribute('class') === 'foo react-draggable'); + }); + it('should set the appropriate custom className when dragging or dragged', function () { drag = TestUtils.renderIntoDocument( From 28be6da964d0b027c4afe66260e4fbb2a3061924 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 14:02:03 -0400 Subject: [PATCH 259/412] fix(userSelect): clear up merge conflicts --- lib/DraggableCore.js | 10 ++-------- lib/utils/domFns.js | 10 ++++------ 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 647528eb..ae44dd6f 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -343,18 +343,12 @@ export default class DraggableCore extends React.Component>>>>>> + scroll works in Google Chrome. We have to use transparent selection instead of user-select:none:lib/DraggableCore.es6 log('DraggableCore: handleDragStop: %j', coreEvent); diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index c47f0165..3088199a 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -139,11 +139,11 @@ export function addUserSelectStyles(doc: Document) { styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; doc.getElementsByTagName('head')[0].appendChild(styleEl); } - addClassName(doc.body, 'react-draggable-transparent-selection'); + if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); } export function removeUserSelectStyles(doc: Document) { - removeClassName(doc.body, 'react-draggable-transparent-selection'); + if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); window.getSelection().removeAllRanges(); // remove selection caused by scroll } @@ -159,8 +159,7 @@ export function styleHacks(childStyle: Object = {}): Object { export function addClassName(el: HTMLElement, className: string) { if (el.classList) { el.classList.add(className); - } - else { + } else { if (!el.className.match(new RegExp(`(?:^|\\s)${className}(?!\\S)`))) { el.className += ` ${className}`; } @@ -170,8 +169,7 @@ export function addClassName(el: HTMLElement, className: string) { export function removeClassName(el: HTMLElement, className: string) { if (el.classList) { el.classList.remove(className); - } - else { + } else { el.className = el.className.replace(new RegExp(`(?:^|\\s)${className}(?!\\S)`, 'g'), ''); } } From afd7721b8cebc17fcda95e58f4565f3f0f169d90 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 14:06:11 -0400 Subject: [PATCH 260/412] fix(TypeScript): Export as module.exports and module.exports.default. Fixes #246, #254, #266 --- index.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 8f1353e5..10429816 100644 --- a/index.js +++ b/index.js @@ -1,2 +1,9 @@ -module.exports = require('./lib/Draggable').default; +var Draggable = require('./lib/Draggable').default; + +// Previous versions of this lib exported as the root export. As to not break +// them, or TypeScript, we export *both* as the root and as 'default'. +// See https://github.com/mzabriskie/react-draggable/pull/254 +// and https://github.com/mzabriskie/react-draggable/issues/266 +module.exports = Draggable; +module.exports.default = Draggable; module.exports.DraggableCore = require('./lib/DraggableCore').default; From b94a1b55a06e3b316bcf3c8eaeea234b3aded939 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 14:15:07 -0400 Subject: [PATCH 261/412] chore(README): Add version badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5307083e..6ca24ec6 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true)](https://ci.appveyor.com/project/mzabriskie/react-draggable) [![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)](http://npmjs.com/package/react-draggable) [![gzip size](http://img.badgesize.io/https://npmcdn.com/react-draggable/dist/react-draggable.min.js?compression=gzip)]() +[![version](https://img.shields.io/npm/v/react-draggable.svg)]() A simple component for making elements draggable. From 3a2865ed769efdde4c7d765d5a981ddff005a879 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 14:15:39 -0400 Subject: [PATCH 262/412] release v3.0.0 --- CHANGELOG.md | 13 ++++++- bower.json | 2 +- dist/react-draggable.js | 67 +++++++++++++++++++++++---------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 +- 7 files changed, 66 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3d15463..77dcc039 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ # Changelog -### 2.2.6 +### 3.0.0 (Aug 21, 2017) + +> Due to an export change, this is semver-major. + +- Breaking: For TypeScript users, `` is now exported as `module.exports` and `module.exports.default`. +- Potentially Breaking: We no longer set `user-select: none` on all elements while dragging. Instead, + the [`::selection` psuedo element](https://developer.mozilla.org/en-US/docs/Web/CSS/::selection) is used. + - Depending on your application, this could cause issues, so be sure to test. +- Bugfix: Pass bounded `x`/`y` to callbacks. See [#226](https://github.com/mzabriskie/react-draggable/pull/226). +- Internal: Upgraded dependencies. + +### 2.2.6 (Apr 30, 2017) - Bugfix: Missing export default on TS definition (thanks @lostfictions) - Internal: TS test suite (thanks @lostfictions) diff --git a/bower.json b/bower.json index 5fbf7c5a..e9239d65 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.6", + "version": "3.0.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index b831f8bb..74e3d5e7 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -275,6 +275,8 @@ exports.getTouchIdentifier = getTouchIdentifier; exports.addUserSelectStyles = addUserSelectStyles; exports.removeUserSelectStyles = removeUserSelectStyles; exports.styleHacks = styleHacks; +exports.addClassName = addClassName; +exports.removeClassName = removeClassName; var _shims = __webpack_require__(0); @@ -419,23 +421,24 @@ function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/ { // User-select Hacks: // // Useful for preventing blue highlights all over everything when dragging. -var userSelectPrefix = (0, _getPrefix.getPrefix)('user-select'); -var userSelect = (0, _getPrefix.browserPrefixToStyle)('user-select', userSelectPrefix); -var userSelectStyle = ';' + userSelect + ': none;'; -var userSelectReplaceRegExp = new RegExp(';?' + userSelect + ': none;'); // leading ; not present on IE // Note we're passing `document` b/c we could be iframed -function addUserSelectStyles(body /*: ?HTMLElement*/) { - if (!body) return; - var style = body.getAttribute('style') || ''; - if (userSelectReplaceRegExp.test(style)) return; // don't add twice - body.setAttribute('style', style + userSelectStyle); +function addUserSelectStyles(doc /*: Document*/) { + var styleEl = doc.getElementById('react-draggable-style-el'); + if (!styleEl) { + styleEl = doc.createElement('style'); + styleEl.type = 'text/css'; + styleEl.id = 'react-draggable-style-el'; + styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\n'; + styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; + doc.getElementsByTagName('head')[0].appendChild(styleEl); + } + if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); } -function removeUserSelectStyles(body /*: ?HTMLElement*/) { - if (!body) return; - var style = body.getAttribute('style') || ''; - body.setAttribute('style', style.replace(userSelectReplaceRegExp, '')); +function removeUserSelectStyles(doc /*: Document*/) { + if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); + window.getSelection().removeAllRanges(); // remove selection caused by scroll } function styleHacks() /*: Object*/ { @@ -448,6 +451,24 @@ function styleHacks() /*: Object*/ { }, childStyle); } +function addClassName(el /*: HTMLElement*/, className /*: string*/) { + if (el.classList) { + el.classList.add(className); + } else { + if (!el.className.match(new RegExp('(?:^|\\s)' + className + '(?!\\S)'))) { + el.className += ' ' + className; + } + } +} + +function removeClassName(el /*: HTMLElement*/, className /*: string*/) { + if (el.classList) { + el.classList.remove(className); + } else { + el.className = el.className.replace(new RegExp('(?:^|\\s)' + className + '(?!\\S)', 'g'), ''); + } +} + /***/ }), /* 6 */ /***/ (function(module, exports) { @@ -892,7 +913,7 @@ var DraggableCore = function (_React$Component) { // Add a style to the body to disable user-select. This prevents text from // being selected all over the page. - if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument.body); + if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets // so we know how much we've moved during the drag. This allows us @@ -971,10 +992,11 @@ var DraggableCore = function (_React$Component) { y = position.y; var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); + var thisNode = _reactDom2.default.findDOMNode(_this); if (thisNode) { // Remove user-select hack - if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument.body); + if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument); } (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); @@ -1029,7 +1051,7 @@ var DraggableCore = function (_React$Component) { (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag); (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop); - if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument.body); + if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument); } } @@ -1212,7 +1234,14 @@ function log() { "use strict"; -module.exports = __webpack_require__(13).default; +var Draggable = __webpack_require__(13).default; + +// Previous versions of this lib exported as the root export. As to not break +// them, or TypeScript, we export *both* as the root and as 'default'. +// See https://github.com/mzabriskie/react-draggable/pull/254 +// and https://github.com/mzabriskie/react-draggable/issues/266 +module.exports = Draggable; +module.exports.default = Draggable; module.exports.DraggableCore = __webpack_require__(10).default; /***/ }), @@ -1359,8 +1388,8 @@ var Draggable = function (_React$Component) { newState.slackY = _this.state.slackY + (_y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect. - uiData.x = _x; - uiData.y = _y; + uiData.x = newState.x; + uiData.y = newState.y; uiData.deltaX = newState.x - _this.state.x; uiData.deltaY = newState.y - _this.state.y; } diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index f5fb0a41..8c0aabd2 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 34c401630d2a4ee1516c",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","userSelectPrefix","userSelect","userSelectStyle","userSelectReplaceRegExp","RegExp","style","getAttribute","test","setAttribute","replace","childStyle","touchAction","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","React","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","type","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","window","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","className","transform","defaultProps","log","module","exports","require","default","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7Ce0B,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOzD,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOH,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMtF,QAAQyF,OAAOH,QAAP,CAAgB6D,eAAhB,CAAgCnJ,KAA9C;;AAEA,MAAIkJ,QAAQlJ,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAIrF,IAAI,CAAb,EAAgBA,IAAIsO,SAASrO,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAIoO,mBAAmBG,IAAnB,EAAyBD,SAAStO,CAAT,CAAzB,KAAyCqF,KAA7C,EAAoD,OAAOiJ,SAAStO,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAASoO,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAI9O,IAAI,CAAb,EAAgBA,IAAI4O,IAAI3O,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAI8O,gBAAJ,EAAsB;AACpBD,aAAOD,IAAI5O,CAAJ,EAAO+O,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAI5O,CAAJ,MAAW,GAAf,EAAoB;AACzB8O,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAI5O,CAAJ,CAAP;AACD;AACF;AACD,SAAO6O,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 34c401630d2a4ee1516c","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\nconst userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: ?HTMLElement) {\n if (!body) return;\n const style = body.getAttribute('style') || '';\n if (userSelectReplaceRegExp.test(style)) return; // don't add twice\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: ?HTMLElement) {\n if (!body) return;\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectReplaceRegExp, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument.body);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap f74b445df532346fffaa",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","React","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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pHiBG,S,CAuHZF,Y,gBACF,wBAAcA,Y;AACjBrE,QAAM,M;AACNxB,UAAQ,K;AACRuH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACvJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB8F,YAAU;;kBA/HOsC,S;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7Ce8B,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOrJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAO0F,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQrG,OAAO0F,QAAP,CAAgB4D,eAAhB,CAAgCjD,KAA9C;;AAEA,MAAIgD,QAAQhD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAIhM,IAAI,CAAb,EAAgBA,IAAI+O,SAAS9O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI6O,mBAAmBG,IAAnB,EAAyBD,SAAS/O,CAAT,CAAzB,KAAyCgM,KAA7C,EAAoD,OAAO+C,SAAS/O,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS6O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAIvP,IAAI,CAAb,EAAgBA,IAAIqP,IAAIpP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIuP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAIrP,CAAJ,EAAOwP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAIrP,CAAJ,MAAW,GAAf,EAAoB;AACzBuP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAIrP,CAAJ,CAAP;AACD;AACF;AACD,SAAOsP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f74b445df532346fffaa","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index aa7cacb2..1bd74b8a 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1 +1 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react-dom"),require("react")):root.ReactDraggable=factory(root.ReactDOM,root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_4__,__WEBPACK_EXTERNAL_MODULE_6__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=12)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=function(array,callback){for(var i=0,length=array.length;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)};var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(18),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc="",userSelectPrefix=(0,_getPrefix.getPrefix)("user-select"),userSelect=(0,_getPrefix.browserPrefixToStyle)("user-select",userSelectPrefix),userSelectStyle=";"+userSelect+": none;",userSelectReplaceRegExp=new RegExp(";?"+userSelect+": none;")},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(16)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);"production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&function(){var printWarning=function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}(),module.exports=warning},function(module,exports,__webpack_require__){"use strict";function cloneBounds(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:cloneBounds(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart),!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument.body),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);if((0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent),!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument.body),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,React.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument.body)}}},{key:"render",value:function(){return React.cloneElement(React.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(19))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(13).default,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return React.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),React.cloneElement(React.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(15);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x==1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];return getPropType(propValue)!==expectedType?new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`."):null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function isSymbol(propType,propValue){return"symbol"===propType||("Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol)}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":isSymbol(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){return propValue.constructor&&propValue.constructor.name?propValue.constructor.name:ANONYMOUS}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(18),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(16)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);"production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&function(){var printWarning=function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}(),module.exports=warning},function(module,exports,__webpack_require__){"use strict";function cloneBounds(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:cloneBounds(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart),!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);if((0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent),!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,React.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return React.cloneElement(React.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(19))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return React.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),React.cloneElement(React.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(15);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x==1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];return getPropType(propValue)!==expectedType?new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`."):null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function isSymbol(propType,propValue){return"symbol"===propType||("Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol)}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":isSymbol(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){return propValue.constructor&&propValue.constructor.name?propValue.constructor.name:ANONYMOUS}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {getPrefix, browserPrefixToStyle, browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\nconst userSelectPrefix = getPrefix('user-select');\nconst userSelect = browserPrefixToStyle('user-select', userSelectPrefix);\nconst userSelectStyle = `;${userSelect}: none;`;\nconst userSelectReplaceRegExp = new RegExp(`;?${userSelect}: none;`); // leading ; not present on IE\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(body: ?HTMLElement) {\n if (!body) return;\n const style = body.getAttribute('style') || '';\n if (userSelectReplaceRegExp.test(style)) return; // don't add twice\n body.setAttribute('style', style + userSelectStyle);\n}\n\nexport function removeUserSelectStyles(body: ?HTMLElement) {\n if (!body) return;\n const style = body.getAttribute('style') || '';\n body.setAttribute('style', style.replace(userSelectReplaceRegExp, ''));\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument.body);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument.body);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument.body);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","module.exports = require('./lib/Draggable').default;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = x;\n uiData.y = y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"]} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap f74b445df532346fffaa","../lib/utils/shims.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../node_modules/prop-types/index.js","../node_modules/fbjs/lib/warning.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/utils/log.js","../index.js","../lib/Draggable.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/getPrefix.js","../node_modules/process/browser.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_6__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","findInArray","array","callback","length","apply","isFunction","func","toString","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","DRAGGABLE_DEBUG","undefined","NODE_ENV","condition","b","e","f","error","args","argIndex","replace","framesToPop","matchesSelector","el","selector","matchesSelectorFunc","_shims","method","addClassName","className","classList","add","match","RegExp","removeClassName","remove","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","offsetParentRect","body","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","default","createSVGTransform","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","removeUserSelectStyles","window","getSelection","removeAllRanges","styleHacks","childStyle","arguments","_extends","touchAction","REACT_ELEMENT_TYPE","Symbol","for","$$typeof","warning","printWarning","_len","Array","_key","message","console","indexOf","_len2","_key2","concat","cloneBounds","bounds","right","bottom","findDOMNode","draggable","_reactDom2","getBoundPosition","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","_domFns","marginRight","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","React","_positionFns","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","_this","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","_log2","onStart","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","isArray","_snapToGrid","_snapToGrid2","_slicedToArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","Component","cloneElement","Children","only","children","style","displayName","propTypes","_propTypes2","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","onDragStart","dragged","uiData","newState","slackX","slackY","_getBoundPosition","_getBoundPosition2","onDragStop","Boolean","_this$props$position","defaultPosition","isElementSVG","warn","SVGElement","nextProps","_classNames","svgTransform","transformOpts","_props","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","_classnames2","_DraggableCore2","oneOf","oneOfType","shape","invariant","ReactPropTypesSecret","checkPropTypes","isValidElement","throwOnDirectAccess","getIteratorFn","maybeIterable","iteratorFn","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","is","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","secret","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","bind","createPrimitiveTypeChecker","expectedType","propValue","getPropType","getPreciseType","isNode","every","step","iterator","entries","next","done","value","entry","isSymbol","propType","Date","getPostfixForTypeWarning","getClassName","constructor","ReactPropTypes","symbol","any","typeChecker","element","createElementTypeChecker","instanceOf","expectedClass","expectedClassName","createNodeChecker","objectOf","key","expectedValues","JSON","stringify","arrayOfTypeCheckers","checker","shapeTypes","PropTypes","loggedTypeFailures","typeSpecs","values","getStack","typeSpecName","ex","shim","getShim","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","argType","push","hasOwn","join","getPrefix","prop","documentElement","prefixes","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","browserPrefixToStyle","toLowerCase","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","len","run","Item","noop","nextTick","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask"],"mappings":"CAAA,SAAAA,KAAAC,SACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,QAAAG,QAAA,aAAAA,QAAA,UACA,mBAAAC,QAAAA,OAAAC,IACAD,QAAA,YAAA,SAAAJ,SACA,iBAAAC,QACAA,QAAA,eAAAD,QAAAG,QAAA,aAAAA,QAAA,UAEAJ,KAAA,eAAAC,QAAAD,KAAA,SAAAA,KAAA,OARA,CASCO,KAAA,SAAAC,8BAAAC,+BACD,yBCNA,SAAAC,oBAAAC,UAGA,GAAAC,iBAAAD,UACA,OAAAC,iBAAAD,UAAAT,QAGA,IAAAC,OAAAS,iBAAAD,WACAE,EAAAF,SACAG,GAAA,EACAZ,YAUA,OANAa,QAAAJ,UAAAK,KAAAb,OAAAD,QAAAC,OAAAA,OAAAD,QAAAQ,qBAGAP,OAAAW,GAAA,EAGAX,OAAAD,QAvBA,IAAAU,oBA4DA,OAhCAF,oBAAAO,EAAAF,QAGAL,oBAAAQ,EAAAN,iBAGAF,oBAAAS,EAAA,SAAAjB,QAAAkB,KAAAC,QACAX,oBAAAY,EAAApB,QAAAkB,OACAG,OAAAC,eAAAtB,QAAAkB,MACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,UAMAX,oBAAAkB,EAAA,SAAAzB,QACA,IAAAkB,OAAAlB,QAAAA,OAAA0B,WACA,WAA2B,OAAA1B,OAAA,SAC3B,WAAiC,OAAAA,QAEjC,OADAO,oBAAAS,EAAAE,OAAA,IAAAA,QACAA,QAIAX,oBAAAY,EAAA,SAAAQ,OAAAC,UAAsD,OAAAR,OAAAS,UAAAC,eAAAjB,KAAAc,OAAAC,WAGtDrB,oBAAAwB,EAAA,GAGAxB,oBAAAA,oBAAAyB,EAAA,+HC3DgBC,YAAT,SAAqBC,MAA+BC,UACzD,IAAK,IAAIzB,EAAI,EAAG0B,OAASF,MAAME,OAAQ1B,EAAI0B,OAAQ1B,IACjD,GAAIyB,SAASE,MAAMF,UAAWD,MAAMxB,GAAIA,EAAGwB,QAAS,OAAOA,MAAMxB,YAIrD4B,WAAT,SAAoBC,MACzB,MAAuB,mBAATA,MAAgE,sBAAzCnB,OAAOS,UAAUW,SAAS3B,KAAK0B,eAGtDE,MAAT,SAAeC,KACpB,MAAsB,iBAARA,MAAqBC,MAAMD,cAG3BE,IAAT,SAAaC,GAClB,OAAOC,SAASD,EAAG,aAGLE,UAAT,SAAmBC,MAAeC,SAAkBC,eACzD,GAAIF,MAAMC,UACR,OAAO,IAAIE,MAAJ,gBAA0BF,SAA1B,cAAgDC,cAAhD,wGCTX,SAAAE,kBAAAC,KACA,OAAA,WACA,OAAAA,KASA,IAAAC,cAAA,aAEAA,cAAAC,YAAAH,kBACAE,cAAAE,iBAAAJ,mBAAA,GACAE,cAAAG,gBAAAL,mBAAA,GACAE,cAAAI,gBAAAN,kBAAA,MACAE,cAAAK,gBAAA,WACA,OAAAvD,MAEAkD,cAAAM,oBAAA,SAAAP,KACA,OAAAA,KAGArD,OAAAD,QAAAuD,yECdA,IAAAO,eAAA,SAAAC,UAEA,eAAA1C,QAAA2C,qBAAAC,IAAAC,WACAJ,eAAA,SAAAC,QACA,QAAAE,IAAAF,OACA,MAAA,IAAAX,MAAA,kDA0BAnD,OAAAD,QArBA,SAAAmE,UAAAJ,OAAAjB,EAAAsB,EAAApD,EAAAC,EAAAoD,EAAAC,GAGA,GAFAR,eAAAC,SAEAI,UAAA,CACA,IAAAI,MACA,QAAAN,IAAAF,OACAQ,MAAA,IAAAnB,MAAA,qIACK,CACL,IAAAoB,MAAA1B,EAAAsB,EAAApD,EAAAC,EAAAoD,EAAAC,GACAG,SAAA,GACAF,MAAA,IAAAnB,MAAAW,OAAAW,QAAA,MAAA,WACA,OAAAF,KAAAC,gBAEAvD,KAAA,sBAIA,MADAqD,MAAAI,YAAA,EACAJ,mECrCAtE,OAAAD,QAFA,yECXAC,OAAAD,QAAAM,6PCOO,SAASsE,gBAAgBC,GAAUC,UAexC,OAdKC,sBACHA,qBAAsB,EAAAC,OAAA9C,cACpB,UACA,wBACA,qBACA,oBACA,oBACC,SAAS+C,QAEV,OAAO,EAAAD,OAAAzC,YAAWsC,GAAGI,YAKlBJ,GAAGE,qBAAqBjE,KAAK+D,GAAIC,UAwInC,SAASI,aAAaL,GAAiBM,WACxCN,GAAGO,UACLP,GAAGO,UAAUC,IAAIF,WAEZN,GAAGM,UAAUG,MAAM,IAAIC,OAAJ,YAAuBJ,UAAvB,cACtBN,GAAGM,WAAH,IAAoBA,WAKnB,SAASK,gBAAgBX,GAAiBM,WAC3CN,GAAGO,UACLP,GAAGO,UAAUK,OAAON,WAEpBN,GAAGM,UAAYN,GAAGM,UAAUT,QAAQ,IAAIa,OAAJ,YAAuBJ,UAAvB,UAA2C,KAAM,6RArKzEP,gBAAAA,wBAmBAc,4BAAT,SAAqCb,GAAUC,SAAkBa,UACtE,IAAIC,KAAOf,GACX,EAAG,CACD,GAAID,gBAAgBgB,KAAMd,UAAW,OAAO,EAC5C,GAAIc,OAASD,SAAU,OAAO,EAC9BC,KAAOA,KAAKC,iBACLD,MAET,OAAO,WAGOE,SAAT,SAAkBjB,GAAWkB,MAAeC,SAC5CnB,KACDA,GAAGoB,YACLpB,GAAGoB,YAAY,KAAOF,MAAOC,SACpBnB,GAAGqB,iBACZrB,GAAGqB,iBAAiBH,MAAOC,SAAS,GAGpCnB,GAAG,KAAOkB,OAASC,kBAIPG,YAAT,SAAqBtB,GAAWkB,MAAeC,SAC/CnB,KACDA,GAAGuB,YACLvB,GAAGuB,YAAY,KAAOL,MAAOC,SACpBnB,GAAGwB,oBACZxB,GAAGwB,oBAAoBN,MAAOC,SAAS,GAGvCnB,GAAG,KAAOkB,OAAS,eAIPO,YAAT,SAAqBV,MAG1B,IAAIW,OAASX,KAAKY,aACZC,cAAgBb,KAAKc,cAAcC,YAAYC,iBAAiBhB,MAGtE,OAFAW,SAAU,EAAAvB,OAAAnC,KAAI4D,cAAcI,gBAC5BN,SAAU,EAAAvB,OAAAnC,KAAI4D,cAAcK,4BAIdC,WAAT,SAAoBnB,MAGzB,IAAIoB,MAAQpB,KAAKqB,YACXR,cAAgBb,KAAKc,cAAcC,YAAYC,iBAAiBhB,MAGtE,OAFAoB,QAAS,EAAAhC,OAAAnC,KAAI4D,cAAcS,iBAC3BF,QAAS,EAAAhC,OAAAnC,KAAI4D,cAAcU,2BAGbC,YAAT,SAAqBxB,MAC1B,IAAIW,OAASX,KAAKY,aACZC,cAAgBb,KAAKc,cAAcC,YAAYC,iBAAiBhB,MAGtE,OAFAW,SAAU,EAAAvB,OAAAnC,KAAI4D,cAAcY,YAC5Bd,SAAU,EAAAvB,OAAAnC,KAAI4D,cAAca,wBAIdC,WAAT,SAAoB3B,MACzB,IAAIoB,MAAQpB,KAAKqB,YACXR,cAAgBb,KAAKc,cAAcC,YAAYC,iBAAiBhB,MAGtE,OAFAoB,QAAS,EAAAhC,OAAAnC,KAAI4D,cAAce,aAC3BR,QAAS,EAAAhC,OAAAnC,KAAI4D,cAAcgB,uBAKbC,mBAAT,SAA4BC,IAAyCC,cAC1E,IACMC,iBADSD,eAAiBA,aAAalB,cAAcoB,MACxBC,KAAM,EAAGC,IAAK,GAAKJ,aAAaK,wBAKnE,OAAQC,EAHEP,IAAIQ,QAAUP,aAAaQ,WAAaP,iBAAiBE,KAGxDM,EAFDV,IAAIW,QAAUV,aAAaW,UAAYV,iBAAiBG,cAKpDQ,mBAAT,SAAAC,MAAoE,IAAvCP,EAAuCO,KAAvCP,EAAGG,EAAoCI,KAApCJ,EAErC,OAAAK,oBAAS,EAAAC,WAAAC,oBAAmB,YAAnBC,YAAAC,SAAiD,aAAeZ,EAAI,MAAQG,EAAI,gBAG3EU,mBAAT,SAAAC,OACL,MAAO,aADkEA,MAAvCd,EACR,IAD+Cc,MAApCX,EACD,aAGtBY,SAAT,SAAkB5E,EAAoB6E,YAC3C,OAAQ7E,EAAE8E,gBAAiB,EAAAnE,OAAA9C,aAAYmC,EAAE8E,cAAe,SAAAC,GAAA,OAAKF,aAAeE,EAAEF,cACtE7E,EAAEgF,iBAAkB,EAAArE,OAAA9C,aAAYmC,EAAEgF,eAAgB,SAAAD,GAAA,OAAKF,aAAeE,EAAEF,sBAGlEI,mBAAT,SAA4BjF,GACjC,OAAIA,EAAE8E,eAAiB9E,EAAE8E,cAAc,GAAW9E,EAAE8E,cAAc,GAAGD,WACjE7E,EAAEgF,gBAAkBhF,EAAEgF,eAAe,GAAWhF,EAAEgF,eAAe,GAAGH,gBAAxE,WAQcK,oBAAT,SAA6BC,KAClC,IAAIC,QAAUD,IAAIE,eAAe,4BAC5BD,WACHA,QAAUD,IAAIG,cAAc,UACpBC,KAAO,WACfH,QAAQI,GAAK,2BACbJ,QAAQK,UAAY,wFACpBL,QAAQK,WAAa,mFACrBN,IAAIO,qBAAqB,QAAQ,GAAGC,YAAYP,UAE9CD,IAAI1B,MAAM5C,aAAasE,IAAI1B,KAAM,kDAGvBmC,uBAAT,SAAgCT,KACjCA,IAAI1B,MAAMtC,gBAAgBgE,IAAI1B,KAAM,yCACxCoC,OAAOC,eAAeC,2BAGRC,WAAT,WAAqD,IAAjCC,WAAiCC,UAAAlI,OAAA,QAAA4B,IAAAsG,UAAA,GAAAA,UAAA,MAG1D,OAAAC,UACEC,YAAa,QACVH,qBAISpF,aAAAA,qBAUAM,gBAAAA,gBAvKhB,IAAAR,OAAAxE,oBAAA,GACAmI,WAAAnI,oBAAA,wFAIIuE,oBAAsB,6BCN1B9E,OAAAD,QAAAO,4ECSA,GAAA,eAAAc,QAAA2C,qBAAAC,IAAAC,SAAA,CACA,IAAAwG,mBAAA,mBAAAC,QACAA,OAAAC,KACAD,OAAAC,IAAA,kBACA,MAWA3K,OAAAD,QAAAQ,oBAAA,IATA,SAAAoB,QACA,MAAA,iBAAAA,QACA,OAAAA,QACAA,OAAAiJ,WAAAH,qBAKA,QAKAzK,OAAAD,QAAAQ,oBAAA,iEChBA,IASAsK,QATAtK,oBAAA,GAWA,eAAAa,QAAA2C,qBAAAC,IAAAC,UACA,WACA,IAAA6G,aAAA,SAAAhH,QACA,IAAA,IAAAiH,KAAAT,UAAAlI,OAAAmC,KAAAyG,MAAAD,KAAA,EAAAA,KAAA,EAAA,GAAAE,KAAA,EAAwFA,KAAAF,KAAaE,OACrG1G,KAAA0G,KAAA,GAAAX,UAAAW,MAGA,IAAAzG,SAAA,EACA0G,QAAA,YAAApH,OAAAW,QAAA,MAAA,WACA,OAAAF,KAAAC,cAEA,oBAAA2G,SACAA,QAAA7G,MAAA4G,SAEA,IAIA,MAAA,IAAA/H,MAAA+H,SACO,MAAAjD,MAGP4C,QAAA,SAAA3G,UAAAJ,QACA,QAAAE,IAAAF,OACA,MAAA,IAAAX,MAAA,6EAGA,GAAA,IAAAW,OAAAsH,QAAA,iCAIAlH,UAAA,CACA,IAAA,IAAAmH,MAAAf,UAAAlI,OAAAmC,KAAAyG,MAAAK,MAAA,EAAAA,MAAA,EAAA,GAAAC,MAAA,EAA8FA,MAAAD,MAAeC,QAC7G/G,KAAA+G,MAAA,GAAAhB,UAAAgB,OAGAR,aAAAzI,WAAA2B,GAAAF,QAAAyH,OAAAhH,SAnCA,GAyCAvE,OAAAD,QAAA8K,mECoDA,SAASW,YAAYC,QACnB,OACE3D,KAAM2D,OAAO3D,KACbC,IAAK0D,OAAO1D,IACZ2D,MAAOD,OAAOC,MACdC,OAAQF,OAAOE,QAInB,SAASC,YAAYC,WACnB,IAAMlG,KAAOmG,WAAAjD,QAAS+C,YAAYC,WAClC,IAAKlG,KACH,MAAM,IAAIxC,MAAM,4CAGlB,OAAOwC,oEA3HOoG,iBAAT,SAA0BF,UAAsB5D,EAAWG,GAEhE,IAAKyD,UAAU7I,MAAMyI,OAAQ,OAAQxD,EAAGG,GAFqD,IAKxFqD,OAAUI,UAAU7I,MAApByI,OACLA,OAA2B,iBAAXA,OAAsBA,OAASD,YAAYC,QAC3D,IAAM9F,KAAOiG,YAAYC,WAEzB,GAAsB,iBAAXJ,OAAqB,CAAA,IACvBhF,cAAiBd,KAAjBc,cACDuF,YAAcvF,cAAcC,YAC9BuF,eAAAA,EAMJ,MAJEA,UADa,WAAXR,OACU9F,KAAKC,WAELa,cAAcyF,cAAcT,mBAEfU,aACzB,MAAM,IAAIhJ,MAAM,oBAAsBsI,OAAS,gCAEjD,IAAMW,UAAYJ,YAAYrF,iBAAiBhB,MACzC0G,eAAiBL,YAAYrF,iBAAiBsF,WAEpDR,QACE3D,MAAOnC,KAAK2G,YAAa,EAAAvH,OAAAnC,KAAIyJ,eAAe9E,cAAe,EAAAxC,OAAAnC,KAAIwJ,UAAUG,YACzExE,KAAMpC,KAAK6G,WAAY,EAAAzH,OAAAnC,KAAIyJ,eAAejF,aAAc,EAAArC,OAAAnC,KAAIwJ,UAAUK,WACtEf,OAAO,EAAAgB,QAAApF,YAAW2E,YAAa,EAAAS,QAAA5F,YAAWnB,MAAQA,KAAK2G,YACrD,EAAAvH,OAAAnC,KAAIyJ,eAAe7E,eAAgB,EAAAzC,OAAAnC,KAAIwJ,UAAUO,aACnDhB,QAAQ,EAAAe,QAAAvF,aAAY8E,YAAa,EAAAS,QAAArG,aAAYV,MAAQA,KAAK6G,WACxD,EAAAzH,OAAAnC,KAAIyJ,eAAehF,gBAAiB,EAAAtC,OAAAnC,KAAIwJ,UAAUQ,eAYxD,OAPI,EAAA7H,OAAAtC,OAAMgJ,OAAOC,SAAQzD,EAAI4E,KAAKC,IAAI7E,EAAGwD,OAAOC,SAC5C,EAAA3G,OAAAtC,OAAMgJ,OAAOE,UAASvD,EAAIyE,KAAKC,IAAI1E,EAAGqD,OAAOE,UAG7C,EAAA5G,OAAAtC,OAAMgJ,OAAO3D,QAAOG,EAAI4E,KAAKE,IAAI9E,EAAGwD,OAAO3D,QAC3C,EAAA/C,OAAAtC,OAAMgJ,OAAO1D,OAAMK,EAAIyE,KAAKE,IAAI3E,EAAGqD,OAAO1D,OAEtCE,EAAGG,YAGG4E,WAAT,SAAoBC,KAAwBC,SAAkBC,UAGnE,OAFUN,KAAKO,MAAMF,SAAWD,KAAK,IAAMA,KAAK,GACtCJ,KAAKO,MAAMD,SAAWF,KAAK,IAAMA,KAAK,aAIlCI,SAAT,SAAkBxB,WACvB,MAAgC,SAAzBA,UAAU7I,MAAMsK,MAA4C,MAAzBzB,UAAU7I,MAAMsK,cAG5CC,SAAT,SAAkB1B,WACvB,MAAgC,SAAzBA,UAAU7I,MAAMsK,MAA4C,MAAzBzB,UAAU7I,MAAMsK,cAI5CE,mBAAT,SAA4BpJ,EAAoBqJ,gBAA0BC,eAC/E,IAAMC,SAAsC,iBAApBF,iBAA+B,EAAAf,QAAA1D,UAAS5E,EAAGqJ,iBAAmB,KACtF,GAA+B,iBAApBA,kBAAiCE,SAAU,OAAO,KAC7D,IAAMhI,KAAOiG,YAAY8B,eAEnB/F,aAAe+F,cAAc1K,MAAM2E,cAAgBhC,KAAKgC,cAAgBhC,KAAKc,cAAcoB,KACjG,OAAO,EAAA6E,QAAAjF,oBAAmBkG,UAAYvJ,EAAGuD,uBAI3BiG,eAAT,SAAwB/B,UAA0B5D,EAAWG,GAClE,IAAMyF,MAAQhC,UAAUgC,MAClBC,UAAW,EAAA/I,OAAAtC,OAAMoL,MAAME,OACvBpI,KAAOiG,YAAYC,WAEzB,OAAIiC,SAGAnI,KAAAA,KACAqI,OAAQ,EAAGC,OAAQ,EACnBF,MAAO9F,EAAGiG,MAAO9F,EACjBH,EAAAA,EAAGG,EAAAA,IAKHzC,KAAAA,KACAqI,OAAQ/F,EAAI4F,MAAME,MAAOE,OAAQ7F,EAAIyF,MAAMK,MAC3CH,MAAOF,MAAME,MAAOG,MAAOL,MAAMK,MACjCjG,EAAAA,EAAGG,EAAAA,YAMO+F,oBAAT,SAA6BtC,UAAsBuC,UACxD,OACEzI,KAAMyI,SAASzI,KACfsC,EAAG4D,UAAUgC,MAAM5F,EAAImG,SAASJ,OAChC5F,EAAGyD,UAAUgC,MAAMzF,EAAIgG,SAASH,OAChCD,OAAQI,SAASJ,OACjBC,OAAQG,SAASH,OACjBF,MAAOlC,UAAUgC,MAAM5F,EACvBiG,MAAOrC,UAAUgC,MAAMzF,IA/G3B,IAAArD,OAAAxE,oBAAA,0EACAA,oBAAA,IACAmM,QAAAnM,oBAAA,69DCFY8N,4MAAZ9N,oBAAA,uCACAA,oBAAA,sCACAA,oBAAA,IACAmM,QAAAnM,oBAAA,GAEA+N,aAAA/N,oBAAA,GACAwE,OAAAxE,oBAAA,gCACAA,oBAAA,KAKMgO,WACJC,OACEC,MAAO,aACPC,KAAM,YACNC,KAAM,YAERC,OACEH,MAAO,YACPC,KAAM,YACNC,KAAM,YAKNE,aAAeN,UAAUK,MAiDRE,sYAoInBjB,OACEkB,UAAU,EAEVhB,MAAOiB,IAAKd,MAAOc,IACnBvB,gBAAiB,YAiBnBwB,gBAAiD,SAAC7K,GAKhD,GAHA8K,MAAKlM,MAAMmM,YAAY/K,IAGlB8K,MAAKlM,MAAMoM,eAAqC,iBAAbhL,EAAEiL,QAAoC,IAAbjL,EAAEiL,OAAc,OAAO,EAGxF,IAAMC,SAAWxD,WAAAjD,QAAS+C,YAATsD,OACjB,IAAKI,WAAaA,SAAS7I,gBAAkB6I,SAAS7I,cAAcoB,KAClE,MAAM,IAAI1E,MAAM,6CAVoC,IAY/CsD,cAAiB6I,SAAjB7I,cAGP,KAAIyI,MAAKlM,MAAMuM,YACVnL,EAAEoL,kBAAkB/I,cAAcC,YAAY+I,OAChDP,MAAKlM,MAAM0M,UAAW,EAAAhD,QAAAjH,6BAA4BrB,EAAEoL,OAAQN,MAAKlM,MAAM0M,OAAQJ,WAC/EJ,MAAKlM,MAAM2M,SAAU,EAAAjD,QAAAjH,6BAA4BrB,EAAEoL,OAAQN,MAAKlM,MAAM2M,OAAQL,WAHjF,CAUA,IAAM7B,iBAAkB,EAAAf,QAAArD,oBAAmBjF,GAC3C8K,MAAKU,UAAUnC,gBAAAA,kBAGf,IAAMoC,UAAW,EAAAvB,aAAAd,oBAAmBpJ,EAAGqJ,gBAAtByB,OACjB,GAAgB,MAAZW,SAAJ,CA9BsD,IA+B/C5H,EAAQ4H,SAAR5H,EAAGG,EAAKyH,SAALzH,EAGJ0H,WAAY,EAAAxB,aAAAV,gBAAAsB,MAAqBjH,EAAGG,IAE1C,EAAA2H,MAAAlH,SAAI,qCAAsCiH,YAG1C,EAAAC,MAAAlH,SAAI,UAAWqG,MAAKlM,MAAMgN,UAEL,IADAd,MAAKlM,MAAMgN,QAAQ5L,EAAG0L,aAKvCZ,MAAKlM,MAAMiN,uBAAsB,EAAAvD,QAAApD,qBAAoB7C,eAKzDyI,MAAKU,UACHb,UAAU,EAEVhB,MAAO9F,EACPiG,MAAO9F,KAMT,EAAAsE,QAAA7G,UAASY,cAAeoI,aAAaH,KAAMQ,MAAKgB,aAChD,EAAAxD,QAAA7G,UAASY,cAAeoI,aAAaF,KAAMO,MAAKiB,0BAGlDD,WAA4C,SAAC9L,GAG5B,cAAXA,EAAEuF,MAAsBvF,EAAEgM,iBAG9B,IAAMP,UAAW,EAAAvB,aAAAd,oBAAmBpJ,EAAG8K,MAAKrB,MAAMJ,gBAAjCyB,OACjB,GAAgB,MAAZW,SAAJ,CAPiD,IAQ5C5H,EAAQ4H,SAAR5H,EAAGG,EAAKyH,SAALzH,EAGR,GAAI4C,MAAMqF,QAAQnB,MAAKlM,MAAMiK,MAAO,CAClC,IAAIe,QAAS/F,EAAIiH,MAAKrB,MAAME,MAAOE,QAAS7F,EAAI8G,MAAKrB,MAAMK,MADzBoC,aAEf,EAAAhC,aAAAtB,YAAWkC,MAAKlM,MAAMiK,KAAMe,QAAQC,SAFrBsC,aAAAC,eAAAF,YAAA,GAGlC,GADCtC,QAFiCuC,aAAA,GAEzBtC,QAFyBsC,aAAA,IAG7BvC,UAAWC,QAAQ,OACxBhG,EAAIiH,MAAKrB,MAAME,MAAQC,QAAQ5F,EAAI8G,MAAKrB,MAAMK,MAAQD,QAGxD,IAAM6B,WAAY,EAAAxB,aAAAV,gBAAAsB,MAAqBjH,EAAGG,GAM1C,IAJA,EAAA2H,MAAAlH,SAAI,gCAAiCiH,YAIhB,IADAZ,MAAKlM,MAAMyN,OAAOrM,EAAG0L,WAgB1CZ,MAAKU,UACH7B,MAAO9F,EACPiG,MAAO9F,SAhBP,IAEE8G,MAAKiB,eAAe,IAAIO,WAAW,YACnC,MAAOC,KAEP,IAAM7K,MAAU8K,SAASC,YAAY,eAGrC/K,MAAMgL,eAAe,WAAW,GAAM,EAAM7G,OAAQ,EAAG,EAAG,EAAG,EAAG,GAAG,GAAO,GAAO,GAAO,EAAO,EAAG,MAClGiF,MAAKiB,eAAerK,gBAW1BqK,eAAgD,SAAC/L,GAC/C,GAAK8K,MAAKrB,MAAMkB,SAAhB,CAEA,IAAMc,UAAW,EAAAvB,aAAAd,oBAAmBpJ,EAAG8K,MAAKrB,MAAMJ,gBAAjCyB,OACjB,GAAgB,MAAZW,SAAJ,CAJqD,IAK9C5H,EAAQ4H,SAAR5H,EAAGG,EAAKyH,SAALzH,EACJ0H,WAAY,EAAAxB,aAAAV,gBAAAsB,MAAqBjH,EAAGG,GAEpCkH,SAAWxD,WAAAjD,QAAS+C,YAATsD,OACbI,UAEEJ,MAAKlM,MAAMiN,uBAAsB,EAAAvD,QAAA1C,wBAAuBsF,SAAS7I,gBAGvE,EAAAsJ,MAAAlH,SAAI,oCAAqCiH,WAGzCZ,MAAKU,UACHb,UAAU,EACVhB,MAAOiB,IACPd,MAAOc,MAITE,MAAKlM,MAAM+N,OAAO3M,EAAG0L,WAEjBR,YAEF,EAAAS,MAAAlH,SAAI,qCACJ,EAAA6D,QAAAxG,aAAYoJ,SAAS7I,cAAeoI,aAAaH,KAAMQ,MAAKgB,aAC5D,EAAAxD,QAAAxG,aAAYoJ,SAAS7I,cAAeoI,aAAaF,KAAMO,MAAKiB,0BAIhEhB,YAA6C,SAAC/K,GAG5C,OAFAyK,aAAeN,UAAUK,MAElBM,MAAKD,gBAAgB7K,UAG9B4M,UAA2C,SAAC5M,GAG1C,OAFAyK,aAAeN,UAAUK,MAElBM,MAAKiB,eAAe/L,UAI7B6M,aAA8C,SAAC7M,GAI7C,OAFAyK,aAAeN,UAAUC,MAElBU,MAAKD,gBAAgB7K,UAG9B8M,WAA4C,SAAC9M,GAI3C,OAFAyK,aAAeN,UAAUC,MAElBU,MAAKiB,eAAe/L,qFAhUYiK,MAAM8C,oFA8I7C,IAAM7B,SAAWxD,WAAAjD,QAAS+C,YAAYxL,MACtC,GAAIkP,SAAU,CAAA,IACL7I,cAAiB6I,SAAjB7I,eACP,EAAAiG,QAAAxG,aAAYO,cAAe8H,UAAUK,MAAMF,KAAMtO,KAAK8P,aACtD,EAAAxD,QAAAxG,aAAYO,cAAe8H,UAAUC,MAAME,KAAMtO,KAAK8P,aACtD,EAAAxD,QAAAxG,aAAYO,cAAe8H,UAAUK,MAAMD,KAAMvO,KAAK+P,iBACtD,EAAAzD,QAAAxG,aAAYO,cAAe8H,UAAUC,MAAMG,KAAMvO,KAAK+P,gBAClD/P,KAAK4C,MAAMiN,uBAAsB,EAAAvD,QAAA1C,wBAAuBvD,iDAiL9D,OAAO4H,MAAM+C,aAAa/C,MAAMgD,SAASC,KAAKlR,KAAK4C,MAAMuO,WACvDC,OAAO,EAAA9E,QAAAtC,YAAWhK,KAAK4C,MAAMuO,SAASvO,MAAMwO,OAI5CrC,YAAa/O,KAAK+O,YAClB8B,aAAc7Q,KAAK6Q,aACnBD,UAAW5Q,KAAK4Q,UAChBE,WAAY9Q,KAAK8Q,kCA9UFpC,cAEZ2C,YAAc,gBAFF3C,cAIZ4C,WAOLtC,cAAeuC,YAAA9I,QAAU+I,KAMzBrC,SAAUoC,YAAA9I,QAAU+I,KAOpB3B,qBAAsB0B,YAAA9I,QAAU+I,KAMhCjK,aAAc,SAAS3E,MAAOC,UAC5B,GAAI4O,QAAQC,SAAW9O,MAAMC,WAA0C,IAA7BD,MAAMC,UAAU8O,SACxD,MAAM,IAAI5O,MAAM,iDAOpB8J,KAAM0E,YAAA9I,QAAUmJ,QAAQL,YAAA9I,QAAUoJ,QAsBlCvC,OAAQiC,YAAA9I,QAAUqJ,OAsBlBvC,OAAQgC,YAAA9I,QAAUqJ,OAMlBlC,QAAS2B,YAAA9I,QAAUtG,KAMnBkO,OAAQkB,YAAA9I,QAAUtG,KAMlBwO,OAAQY,YAAA9I,QAAUtG,KAMlB4M,YAAawC,YAAA9I,QAAUtG,KAKvB2C,UAAAA,OAAAA,UACAsM,MAAAA,OAAAA,UACAW,UAAAA,OAAAA,WAlHiBrD,cAqHZsD,cACLhD,eAAe,EACfO,OAAQ,KACRJ,UAAU,EACVU,sBAAsB,EACtBtI,aAAc,KACd+H,OAAQ,KACRzC,KAAM,KACNkF,UAAW,KACXnC,QAAS,aACTS,OAAQ,aACRM,OAAQ,aACR5B,YAAa,8BAjIIL,wLC1EN,wECFf,IAAIuD,UAAY9R,oBAAQ,IAAmBsI,QAM3C7I,OAAOD,QAAUsS,UACjBrS,OAAOD,QAAQ8I,QAAUwJ,UACzBrS,OAAOD,QAAQ+O,cAAgBvO,oBAAQ,IAAuBsI,y0ECPlDwF,4MAAZ9N,oBAAA,uCACAA,oBAAA,sCACAA,oBAAA,wCAEAA,oBAAA,KACAmM,QAAAnM,oBAAA,GACA+N,aAAA/N,oBAAA,GACAwE,OAAAxE,oBAAA,0CACAA,oBAAA,kCAEAA,oBAAA,KA0BqB8R,qCAkInB,SAAAA,UAAYrP,OAAuBsP,gBAAAlS,KAAAiS,WAAA,IAAAnD,MAAAqD,2BAAAnS,MAAAiS,UAAAG,WAAApR,OAAAqR,eAAAJ,YAAAxR,KAAAT,KAC3B4C,QAD2B,OAAAkM,MAsDnCwD,YAAqC,SAACtO,EAAGgK,UAMvC,IALA,EAAA2B,MAAAlH,SAAI,6BAA8BuF,WAKd,IAFAc,MAAKlM,MAAMgN,QAAQ5L,GAAG,EAAAkK,aAAAH,qBAAAe,MAA0Bd,WAEzC,OAAO,EAElCc,MAAKU,UAAUb,UAAU,EAAM4D,SAAS,KA9DPzD,MAiEnCuB,OAAgC,SAACrM,EAAGgK,UAClC,IAAKc,MAAKrB,MAAMkB,SAAU,OAAO,GACjC,EAAAgB,MAAAlH,SAAI,wBAAyBuF,UAE7B,IAAMwE,QAAS,EAAAtE,aAAAH,qBAAAe,MAA0Bd,UAEnCyE,UACJ5K,EAAG2K,OAAO3K,EACVG,EAAGwK,OAAOxK,GAIZ,GAAI8G,MAAKlM,MAAMyI,OAAQ,CAAA,IAEdxD,GAAQ4K,SAAR5K,EAAGG,GAAKyK,SAALzK,EAKVyK,SAAS5K,GAAKiH,MAAKrB,MAAMiF,OACzBD,SAASzK,GAAK8G,MAAKrB,MAAMkF,OARJ,IAAAC,mBAYM,EAAA1E,aAAAvC,kBAAAmD,MAAuB2D,SAAS5K,EAAG4K,SAASzK,GAZlD6K,mBAAAzC,eAAAwC,kBAAA,GAYpBH,SAAS5K,EAZWgL,mBAAA,GAYRJ,SAASzK,EAZD6K,mBAAA,GAerBJ,SAASC,OAAS5D,MAAKrB,MAAMiF,QAAU7K,GAAI4K,SAAS5K,GACpD4K,SAASE,OAAS7D,MAAKrB,MAAMkF,QAAU3K,GAAIyK,SAASzK,GAGpDwK,OAAO3K,EAAI4K,SAAS5K,EACpB2K,OAAOxK,EAAIyK,SAASzK,EACpBwK,OAAO5E,OAAS6E,SAAS5K,EAAIiH,MAAKrB,MAAM5F,EACxC2K,OAAO3E,OAAS4E,SAASzK,EAAI8G,MAAKrB,MAAMzF,EAK1C,IAAqB,IADA8G,MAAKlM,MAAMyN,OAAOrM,EAAGwO,QACd,OAAO,EAEnC1D,MAAKU,SAASiD,WA1GmB3D,MA6GnCgE,WAAoC,SAAC9O,EAAGgK,UACtC,IAAKc,MAAKrB,MAAMkB,SAAU,OAAO,EAIjC,IAAmB,IADAG,MAAKlM,MAAM+N,OAAO3M,GAAG,EAAAkK,aAAAH,qBAAAe,MAA0Bd,WACxC,OAAO,GAEjC,EAAA2B,MAAAlH,SAAI,4BAA6BuF,UAEjC,IAAMyE,UACJ9D,UAAU,EACV+D,OAAQ,EACRC,OAAQ,GAMV,GADmBI,QAAQjE,MAAKlM,MAAM6M,UACtB,CAAA,IAAAuD,qBACClE,MAAKlM,MAAM6M,SAAnB5H,IADOmL,qBACPnL,EAAGG,IADIgL,qBACJhL,EACVyK,SAAS5K,EAAIA,IACb4K,SAASzK,EAAIA,IAGf8G,MAAKU,SAASiD,WAlId3D,MAAKrB,OAEHkB,UAAU,EAGV4D,SAAS,EAGT1K,EAAGjF,MAAM6M,SAAW7M,MAAM6M,SAAS5H,EAAIjF,MAAMqQ,gBAAgBpL,EAC7DG,EAAGpF,MAAM6M,SAAW7M,MAAM6M,SAASzH,EAAIpF,MAAMqQ,gBAAgBjL,EAG7D0K,OAAQ,EAAGC,OAAQ,EAGnBO,cAAc,GAlBiBpE,iCAlIEb,MAAM8C,+EAyJrC/Q,KAAK4C,MAAM6M,UAAczP,KAAK4C,MAAMyN,QAAUrQ,KAAK4C,MAAM+N,QAE3D5F,QAAQoI,KAAK,yQAQU,oBAAfC,YAA8B1H,WAAAjD,QAAS+C,YAAYxL,gBAAiBoT,YAC5EpT,KAAKwP,UAAW0D,cAAc,sDAIRG,YAEpBA,UAAU5D,UACRzP,KAAK4C,MAAM6M,UACX4D,UAAU5D,SAAS5H,IAAM7H,KAAK4C,MAAM6M,SAAS5H,GAC7CwL,UAAU5D,SAASzH,IAAMhI,KAAK4C,MAAM6M,SAASzH,GAGjDhI,KAAKwP,UAAW3H,EAAGwL,UAAU5D,SAAS5H,EAAGG,EAAGqL,UAAU5D,SAASzH,mDAKjEhI,KAAKwP,UAAUb,UAAU,qCAqFE,IAAA2E,YACvBlC,SAAYmC,aAAe,KAIzB9H,WADasH,QAAQ/S,KAAK4C,MAAM6M,WACLzP,KAAKyN,MAAMkB,SAEtCc,SAAWzP,KAAK4C,MAAM6M,UAAYzP,KAAK4C,MAAMqQ,gBAC7CO,eAEJ3L,GAAG,EAAAqG,aAAAjB,UAASjN,OAASyL,UACnBzL,KAAKyN,MAAM5F,EACX4H,SAAS5H,EAGXG,GAAG,EAAAkG,aAAAf,UAASnN,OAASyL,UACnBzL,KAAKyN,MAAMzF,EACXyH,SAASzH,GAIThI,KAAKyN,MAAMyF,aACbK,cAAe,EAAAjH,QAAA5D,oBAAmB8K,eAMlCpC,OAAQ,EAAA9E,QAAAnE,oBAAmBqL,eA5BF,IAAAC,OAmCvBzT,KAAK4C,MAHP8Q,iBAhCyBD,OAgCzBC,iBACAC,yBAjCyBF,OAiCzBE,yBACAC,wBAlCyBH,OAkCzBG,wBAII9O,WAAY,EAAA+O,aAAApL,SAAYzI,KAAK4C,MAAMuO,SAASvO,MAAMkC,WAAa,GAAK4O,kBAAxDJ,eAAAjL,gBAAAiL,YACfK,yBAA2B3T,KAAKyN,MAAMkB,UADvBtG,gBAAAiL,YAEfM,wBAA0B5T,KAAKyN,MAAM8E,SAFtBe,cAOlB,OACErF,MAAA3E,cAAAwK,gBAAArL,QAAA0B,YAAmBnK,KAAK4C,OAAOgN,QAAS5P,KAAKsS,YAAajC,OAAQrQ,KAAKqQ,OAAQM,OAAQ3Q,KAAK8S,aACzF7E,MAAM+C,aAAa/C,MAAMgD,SAASC,KAAKlR,KAAK4C,MAAMuO,WACjDrM,UAAWA,UACXsM,MAAAA,YAAWpR,KAAK4C,MAAMuO,SAASvO,MAAMwO,MAAUA,OAC/CW,UAAWwB,iCA5TAtB,UAEZZ,YAAc,YAFFY,UAIZX,sBAEFwC,gBAAArL,QAAc6I,WAejBpE,KAAMqE,YAAA9I,QAAUsL,OAAO,OAAQ,IAAK,IAAK,SA4BzC1I,OAAQkG,YAAA9I,QAAUuL,WAChBzC,YAAA9I,QAAUwL,OACRvM,KAAM6J,YAAA9I,QAAUoJ,OAChBvG,MAAOiG,YAAA9I,QAAUoJ,OACjBlK,IAAK4J,YAAA9I,QAAUoJ,OACftG,OAAQgG,YAAA9I,QAAUoJ,SAEpBN,YAAA9I,QAAUqJ,OACVP,YAAA9I,QAAUsL,QAAO,MAGnBL,iBAAkBnC,YAAA9I,QAAUqJ,OAC5B6B,yBAA0BpC,YAAA9I,QAAUqJ,OACpC8B,wBAAyBrC,YAAA9I,QAAUqJ,OAmBnCmB,gBAAiB1B,YAAA9I,QAAUwL,OACzBpM,EAAG0J,YAAA9I,QAAUoJ,OACb7J,EAAGuJ,YAAA9I,QAAUoJ,SAuBfpC,SAAU8B,YAAA9I,QAAUwL,OAClBpM,EAAG0J,YAAA9I,QAAUoJ,OACb7J,EAAGuJ,YAAA9I,QAAUoJ,SAMf/M,UAAAA,OAAAA,UACAsM,MAAAA,OAAAA,UACAW,UAAAA,OAAAA,YApHiBE,UAuHZD,yBACF8B,gBAAArL,QAAcuJ,cACjB9E,KAAM,OACN7B,QAAQ,EACRqI,iBAAkB,kBAClBC,yBAA0B,2BAC1BC,wBAAyB,0BACzBX,iBAAkBpL,EAAG,EAAGG,EAAG,GAC3ByH,SAAU,uBA/HOwC,qEC1BrB,IAAA/O,cAAA/C,oBAAA,GACA+T,UAAA/T,oBAAA,GACAsK,QAAAtK,oBAAA,GAEAgU,qBAAAhU,oBAAA,GACAiU,eAAAjU,oBAAA,IAEAP,OAAAD,QAAA,SAAA0U,eAAAC,qBAmBA,SAAAC,cAAAC,eACA,IAAAC,WAAAD,gBAAAE,iBAAAF,cAAAE,kBAAAF,cAAAG,uBACA,GAAA,mBAAAF,WACA,OAAAA,WAgFA,SAAAG,GAAA/M,EAAAG,GAEA,OAAAH,IAAAG,EAGA,IAAAH,GAAA,EAAAA,GAAA,EAAAG,EAGAH,IAAAA,GAAAG,IAAAA,EAYA,SAAA6M,cAAA/J,SACA9K,KAAA8K,QAAAA,QACA9K,KAAA8U,MAAA,GAKA,SAAAC,2BAAAC,UAKA,SAAAC,UAAAC,WAAAtS,MAAAC,SAAAC,cAAAqS,SAAAC,aAAAC,QAIA,GAHAvS,cAAAA,eAAAwS,UACAF,aAAAA,cAAAvS,SAEAwS,SAAAlB,qBACA,GAAAG,oBAEAJ,WACA,EACA,0LAIS,GAAA,eAAAlT,QAAA2C,qBAAAC,IAAAC,UAAA,oBAAAkH,QAAA,CAET,IAAAwK,SAAAzS,cAAA,IAAAD,UAEA2S,wBAAAD,WAEAE,2BAAA,IAEAhL,SACA,EACA,8SAKA2K,aACAtS,eAEA0S,wBAAAD,WAAA,EACAE,8BAIA,OAAA,MAAA7S,MAAAC,UACAqS,WAEA,IAAAL,cADA,OAAAjS,MAAAC,UACA,OAAAsS,SAAA,KAAAC,aAAA,+BAAAtS,cAAA,8BAEA,OAAAqS,SAAA,KAAAC,aAAA,+BAAAtS,cAAA,oCAEA,KAEAkS,SAAApS,MAAAC,SAAAC,cAAAqS,SAAAC,cAjDA,GAAA,eAAApU,QAAA2C,qBAAAC,IAAAC,SACA,IAAA2R,2BACAC,2BAAA,EAmDA,IAAAC,iBAAAT,UAAAU,KAAA,MAAA,GAGA,OAFAD,iBAAAR,WAAAD,UAAAU,KAAA,MAAA,GAEAD,iBAGA,SAAAE,2BAAAC,cAcA,OAAAd,2BAbA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,aAAAC,QACA,IAAAS,UAAAlT,MAAAC,UAEA,OADAkT,YAAAD,aACAD,aAMA,IAAAhB,cAAA,WAAAM,SAAA,KAAAC,aAAA,cAFAY,eAAAF,WAEA,kBAAAhT,cAAA,gBAAA+S,aAAA,MAEA,OAkKA,SAAAI,OAAAH,WACA,cAAAA,WACA,IAAA,SACA,IAAA,SACA,IAAA,YACA,OAAA,EACA,IAAA,UACA,OAAAA,UACA,IAAA,SACA,GAAAlL,MAAAqF,QAAA6F,WACA,OAAAA,UAAAI,MAAAD,QAEA,GAAA,OAAAH,WAAAzB,eAAAyB,WACA,OAAA,EAGA,IAAArB,WAAAF,cAAAuB,WACA,IAAArB,WAqBA,OAAA,EApBA,IACA0B,KADAC,SAAA3B,WAAAhU,KAAAqV,WAEA,GAAArB,aAAAqB,UAAAO,SACA,OAAAF,KAAAC,SAAAE,QAAAC,MACA,IAAAN,OAAAE,KAAAK,OACA,OAAA,OAKA,OAAAL,KAAAC,SAAAE,QAAAC,MAAA,CACA,IAAAE,MAAAN,KAAAK,MACA,GAAAC,QACAR,OAAAQ,MAAA,IACA,OAAA,EASA,OAAA,EACA,QACA,OAAA,GAIA,SAAAC,SAAAC,SAAAb,WAEA,MAAA,WAAAa,WAKA,WAAAb,UAAA,kBAKA,mBAAAxL,QAAAwL,qBAAAxL,QAQA,SAAAyL,YAAAD,WACA,IAAAa,gBAAAb,UACA,OAAAlL,MAAAqF,QAAA6F,WACA,QAEAA,qBAAA5Q,OAIA,SAEAwR,SAAAC,SAAAb,WACA,SAEAa,SAKA,SAAAX,eAAAF,WACA,QAAA,IAAAA,WAAA,OAAAA,UACA,MAAA,GAAAA,UAEA,IAAAa,SAAAZ,YAAAD,WACA,GAAA,WAAAa,SAAA,CACA,GAAAb,qBAAAc,KACA,MAAA,OACO,GAAAd,qBAAA5Q,OACP,MAAA,SAGA,OAAAyR,SAKA,SAAAE,yBAAAL,OACA,IAAAjN,KAAAyM,eAAAQ,OACA,OAAAjN,MACA,IAAA,QACA,IAAA,SACA,MAAA,MAAAA,KACA,IAAA,UACA,IAAA,OACA,IAAA,SACA,MAAA,KAAAA,KACA,QACA,OAAAA,MAKA,SAAAuN,aAAAhB,WACA,OAAAA,UAAAiB,aAAAjB,UAAAiB,YAAAlW,KAGAiV,UAAAiB,YAAAlW,KAFAyU,UAleA,IAAAZ,gBAAA,mBAAApK,QAAAA,OAAA8L,SACAzB,qBAAA,aAsEAW,UAAA,gBAIA0B,gBACAlV,MAAA8T,2BAAA,SACApE,KAAAoE,2BAAA,WACAzT,KAAAyT,2BAAA,YACA/D,OAAA+D,2BAAA,UACArU,OAAAqU,2BAAA,UACA9D,OAAA8D,2BAAA,UACAqB,OAAArB,2BAAA,UAEAsB,IAyHAnC,2BAAA7R,cAAAI,iBAxHAsO,QA2HA,SAAAuF,aAkBA,OAAApC,2BAjBA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,cACA,GAAA,mBAAA+B,YACA,OAAA,IAAAtC,cAAA,aAAAO,aAAA,mBAAAtS,cAAA,mDAEA,IAAAgT,UAAAlT,MAAAC,UACA,IAAA+H,MAAAqF,QAAA6F,WAEA,OAAA,IAAAjB,cAAA,WAAAM,SAAA,KAAAC,aAAA,cADAW,YAAAD,WACA,kBAAAhT,cAAA,yBAEA,IAAA,IAAAxC,EAAA,EAAqBA,EAAAwV,UAAA9T,OAAsB1B,IAAA,CAC3C,IAAA4D,MAAAiT,YAAArB,UAAAxV,EAAAwC,cAAAqS,SAAAC,aAAA,IAAA9U,EAAA,IAAA6T,sBACA,GAAAjQ,iBAAAnB,MACA,OAAAmB,MAGA,OAAA,QA1IAkT,QA+IA,WASA,OAAArC,2BARA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,cACA,IAAAU,UAAAlT,MAAAC,UACA,OAAAwR,eAAAyB,WAIA,KAFA,IAAAjB,cAAA,WAAAM,SAAA,KAAAC,aAAA,cADAW,YAAAD,WACA,kBAAAhT,cAAA,wCApJAuU,GACAC,WA0JA,SAAAC,eASA,OAAAxC,2BARA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,cACA,KAAAxS,MAAAC,oBAAA0U,eAAA,CACA,IAAAC,kBAAAD,cAAA1W,MAAAyU,UAEA,OAAA,IAAAT,cAAA,WAAAM,SAAA,KAAAC,aAAA,cADA0B,aAAAlU,MAAAC,WACA,kBAAAC,cAAA,4BAAA0U,kBAAA,MAEA,OAAA,QAhKAjS,KAiPA,WAOA,OAAAwP,2BANA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,cACA,OAAAa,OAAArT,MAAAC,WAGA,KAFA,IAAAgS,cAAA,WAAAM,SAAA,KAAAC,aAAA,kBAAAtS,cAAA,8BApPA2U,GACAC,SAwLA,SAAAP,aAoBA,OAAApC,2BAnBA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,cACA,GAAA,mBAAA+B,YACA,OAAA,IAAAtC,cAAA,aAAAO,aAAA,mBAAAtS,cAAA,oDAEA,IAAAgT,UAAAlT,MAAAC,UACA8T,SAAAZ,YAAAD,WACA,GAAA,WAAAa,SACA,OAAA,IAAA9B,cAAA,WAAAM,SAAA,KAAAC,aAAA,cAAAuB,SAAA,kBAAA7T,cAAA,0BAEA,IAAA,IAAA6U,OAAA7B,UACA,GAAAA,UAAApU,eAAAiW,KAAA,CACA,IAAAzT,MAAAiT,YAAArB,UAAA6B,IAAA7U,cAAAqS,SAAAC,aAAA,IAAAuC,IAAAxD,sBACA,GAAAjQ,iBAAAnB,MACA,OAAAmB,MAIA,OAAA,QAzMA6P,MAmKA,SAAA6D,gBACA,OAAAhN,MAAAqF,QAAA2H,gBAgBA7C,2BAXA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,cAEA,IAAA,IADAU,UAAAlT,MAAAC,UACAvC,EAAA,EAAqBA,EAAAsX,eAAA5V,OAA2B1B,IAChD,GAAAsU,GAAAkB,UAAA8B,eAAAtX,IACA,OAAA,KAKA,OAAA,IAAAuU,cAAA,WAAAM,SAAA,KAAAC,aAAA,eAAAU,UAAA,kBAAAhT,cAAA,sBADA+U,KAAAC,UAAAF,gBACA,QAbA,eAAA5W,QAAA2C,qBAAAC,IAAAC,UAAA4G,SAAA,EAAA,sEACAvH,cAAAI,kBArKA0Q,UA6MA,SAAA+D,qBACA,IAAAnN,MAAAqF,QAAA8H,qBAEA,MADA,eAAA/W,QAAA2C,qBAAAC,IAAAC,UAAA4G,SAAA,EAAA,0EACAvH,cAAAI,gBAGA,IAAA,IAAAhD,EAAA,EAAmBA,EAAAyX,oBAAA/V,OAAgC1B,IAAA,CACnD,IAAA0X,QAAAD,oBAAAzX,GACA,GAAA,mBAAA0X,QAQA,OAPAvN,SACA,EACA,4GAEAoM,yBAAAmB,SACA1X,GAEA4C,cAAAI,gBAcA,OAAAyR,2BAVA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,cACA,IAAA,IAAA9U,EAAA,EAAqBA,EAAAyX,oBAAA/V,OAAgC1B,IAErD,GAAA,OAAA0X,EADAD,oBAAAzX,IACAsC,MAAAC,SAAAC,cAAAqS,SAAAC,aAAAjB,sBACA,OAAA,KAIA,OAAA,IAAAU,cAAA,WAAAM,SAAA,KAAAC,aAAA,kBAAAtS,cAAA,SAxOAmR,MAuPA,SAAAgE,YAmBA,OAAAlD,2BAlBA,SAAAnS,MAAAC,SAAAC,cAAAqS,SAAAC,cACA,IAAAU,UAAAlT,MAAAC,UACA8T,SAAAZ,YAAAD,WACA,GAAA,WAAAa,SACA,OAAA,IAAA9B,cAAA,WAAAM,SAAA,KAAAC,aAAA,cAAAuB,SAAA,kBAAA7T,cAAA,yBAEA,IAAA,IAAA6U,OAAAM,WAAA,CACA,IAAAD,QAAAC,WAAAN,KACA,GAAAK,QAAA,CAGA,IAAA9T,MAAA8T,QAAAlC,UAAA6B,IAAA7U,cAAAqS,SAAAC,aAAA,IAAAuC,IAAAxD,sBACA,GAAAjQ,MACA,OAAAA,OAGA,OAAA,SAsIA,OA7WA2Q,cAAApT,UAAAsB,MAAAtB,UA0WAuV,eAAA5C,eAAAA,eACA4C,eAAAkB,UAAAlB,eAEAA,2ECnfA,GAAA,eAAAhW,QAAA2C,qBAAAC,IAAAC,SACA,IAAAqQ,UAAA/T,oBAAA,GACAsK,QAAAtK,oBAAA,GACAgU,qBAAAhU,oBAAA,GACAgY,sBA6CAvY,OAAAD,QA/BA,SAAAyY,UAAAC,OAAAlD,SAAArS,cAAAwV,UACA,GAAA,eAAAtX,QAAA2C,qBAAAC,IAAAC,SACA,IAAA,IAAA0U,gBAAAH,UACA,GAAAA,UAAA1W,eAAA6W,cAAA,CACA,IAAArU,MAIA,IAGAgQ,UAAA,mBAAAkE,UAAAG,cAAA,oFAAgGzV,eAAA,cAAAqS,SAAAoD,cAChGrU,MAAAkU,UAAAG,cAAAF,OAAAE,aAAAzV,cAAAqS,SAAA,KAAAhB,sBACS,MAAAqE,IACTtU,MAAAsU,GAGA,GADA/N,SAAAvG,OAAAA,iBAAAnB,MAAA,2RAAgGD,eAAA,cAAAqS,SAAAoD,oBAAArU,OAChGA,iBAAAnB,SAAAmB,MAAA4G,WAAAqN,oBAAA,CAGAA,mBAAAjU,MAAA4G,UAAA,EAEA,IAAAgK,MAAAwD,SAAAA,WAAA,GAEA7N,SAAA,EAAA,uBAAA0K,SAAAjR,MAAA4G,QAAA,MAAAgK,MAAAA,MAAA,kEC1CA,IAAA5R,cAAA/C,oBAAA,GACA+T,UAAA/T,oBAAA,GACAgU,qBAAAhU,oBAAA,GAEAP,OAAAD,QAAA,WACA,SAAA8Y,KAAA7V,MAAAC,SAAAC,cAAAqS,SAAAC,aAAAC,QACAA,SAAAlB,sBAIAD,WACA,EACA,mLAMA,SAAAwE,UACA,OAAAD,KAFAA,KAAAvD,WAAAuD,KAMA,IAAAzB,gBACAlV,MAAA2W,KACAjH,KAAAiH,KACAtW,KAAAsW,KACA5G,OAAA4G,KACAlX,OAAAkX,KACA3G,OAAA2G,KACAxB,OAAAwB,KAEAvB,IAAAuB,KACA7G,QAAA8G,QACAtB,QAAAqB,KACAnB,WAAAoB,QACAnT,KAAAkT,KACAf,SAAAgB,QACA3E,MAAA2E,QACA1E,UAAA0E,QACAzE,MAAAyE,SAMA,OAHA1B,eAAA5C,eAAAlR,cACA8T,eAAAkB,UAAAlB,eAEAA,8DCzDA,IAAA2B,6BAAAC,+BAOA,WACA,aAIA,SAAAC,aAGA,IAAA,IAFAC,WAEAxY,EAAA,EAAiBA,EAAA4J,UAAAlI,OAAsB1B,IAAA,CACvC,IAAA2C,IAAAiH,UAAA5J,GACA,GAAA2C,IAAA,CAEA,IAAA8V,eAAA9V,IAEA,GAAA,WAAA8V,SAAA,WAAAA,QACAD,QAAAE,KAAA/V,UACI,GAAA2H,MAAAqF,QAAAhN,KACJ6V,QAAAE,KAAAH,WAAA5W,MAAA,KAAAgB,WACI,GAAA,WAAA8V,QACJ,IAAA,IAAApB,OAAA1U,IACAgW,OAAAxY,KAAAwC,IAAA0U,MAAA1U,IAAA0U,MACAmB,QAAAE,KAAArB,MAMA,OAAAmB,QAAAI,KAAA,KAxBA,IAAAD,UAAgBvX,oBA2BhB,IAAA9B,QAAAA,OAAAD,QACAC,OAAAD,QAAAkZ,YAGAF,qCAEG/U,KAFHgV,8BAAA,WACA,OAAAC,YACG5W,MAAAtC,QAAAgZ,iCAAA/Y,OAAAD,QAAAiZ,gCApCH,8DCLO,SAASO,YAA4C,IAAlCC,KAAkClP,UAAAlI,OAAA,QAAA4B,IAAAsG,UAAA,GAAAA,UAAA,GAArB,YAIrC,GAAsB,oBAAXL,aAAqD,IAApBA,OAAO2G,SAA0B,MAAO,GAEpF,IAAMY,MAAQvH,OAAO2G,SAAS6I,gBAAgBjI,MAE9C,GAAIgI,QAAQhI,MAAO,MAAO,GAE1B,IAAK,IAAI9Q,EAAI,EAAGA,EAAIgZ,SAAStX,OAAQ1B,IACnC,GAAIiI,mBAAmB6Q,KAAME,SAAShZ,MAAO8Q,MAAO,OAAOkI,SAAShZ,GAGtE,MAAO,GAGF,SAASiI,mBAAmB6Q,KAAcG,QAC/C,OAAOA,OAAAA,GAAYA,OAASC,iBAAiBJ,MAAUA,KAOzD,SAASI,iBAAiBC,KAGxB,IAAK,IAFDC,IAAM,GACNC,kBAAmB,EACdrZ,EAAI,EAAGA,EAAImZ,IAAIzX,OAAQ1B,IAC1BqZ,kBACFD,KAAOD,IAAInZ,GAAGsZ,cACdD,kBAAmB,GACC,MAAXF,IAAInZ,GACbqZ,kBAAmB,EAEnBD,KAAOD,IAAInZ,GAGf,OAAOoZ,mEAtCOP,UAAAA,kBAiBA5Q,mBAAAA,2BAIAsR,qBAAT,SAA8BT,KAAcG,QACjD,OAAOA,OAAAA,IAAaA,OAAOO,cAApB,IAAqCV,KAASA,MAvBvD,IAAME,UAAY,MAAO,SAAU,IAAK,sBA6CzBH,sCCnCf,SAAAY,mBACA,MAAA,IAAAhX,MAAA,mCAEA,SAAAiX,sBACA,MAAA,IAAAjX,MAAA,qCAsBA,SAAAkX,WAAAC,KACA,GAAAC,mBAAAC,WAEA,OAAAA,WAAAF,IAAA,GAGA,IAAAC,mBAAAJ,mBAAAI,mBAAAC,WAEA,OADAD,iBAAAC,WACAA,WAAAF,IAAA,GAEA,IAEA,OAAAC,iBAAAD,IAAA,GACK,MAAAlW,GACL,IAEA,OAAAmW,iBAAA1Z,KAAA,KAAAyZ,IAAA,GACS,MAAAlW,GAET,OAAAmW,iBAAA1Z,KAAAT,KAAAka,IAAA,KAMA,SAAAG,gBAAAC,QACA,GAAAC,qBAAAC,aAEA,OAAAA,aAAAF,QAGA,IAAAC,qBAAAP,sBAAAO,qBAAAC,aAEA,OADAD,mBAAAC,aACAA,aAAAF,QAEA,IAEA,OAAAC,mBAAAD,QACK,MAAAtW,GACL,IAEA,OAAAuW,mBAAA9Z,KAAA,KAAA6Z,QACS,MAAAtW,GAGT,OAAAuW,mBAAA9Z,KAAAT,KAAAsa,UAYA,SAAAG,kBACAC,UAAAC,eAGAD,UAAA,EACAC,aAAA3Y,OACA4Y,MAAAD,aAAAxP,OAAAyP,OAEAC,YAAA,EAEAD,MAAA5Y,QACA8Y,cAIA,SAAAA,aACA,IAAAJ,SAAA,CAGA,IAAAK,QAAAd,WAAAQ,iBACAC,UAAA,EAGA,IADA,IAAAM,IAAAJ,MAAA5Y,OACAgZ,KAAA,CAGA,IAFAL,aAAAC,MACAA,WACAC,WAAAG,KACAL,cACAA,aAAAE,YAAAI,MAGAJ,YAAA,EACAG,IAAAJ,MAAA5Y,OAEA2Y,aAAA,KACAD,UAAA,EACAL,gBAAAU,UAiBA,SAAAG,KAAAhB,IAAApY,OACA9B,KAAAka,IAAAA,IACAla,KAAA8B,MAAAA,MAYA,SAAAqZ,QAhKA,IAOAhB,iBACAI,mBARA9I,QAAA7R,OAAAD,YAgBA,WACA,IAEAwa,iBADA,mBAAAC,WACAA,WAEAL,iBAEK,MAAA/V,GACLmW,iBAAAJ,iBAEA,IAEAQ,mBADA,mBAAAC,aACAA,aAEAR,oBAEK,MAAAhW,GACLuW,mBAAAP,qBAjBA,GAwEA,IAEAW,aAFAC,SACAF,UAAA,EAEAG,YAAA,EAyCApJ,QAAA2J,SAAA,SAAAlB,KACA,IAAA/V,KAAA,IAAAyG,MAAAV,UAAAlI,OAAA,GACA,GAAAkI,UAAAlI,OAAA,EACA,IAAA,IAAA1B,EAAA,EAAuBA,EAAA4J,UAAAlI,OAAsB1B,IAC7C6D,KAAA7D,EAAA,GAAA4J,UAAA5J,GAGAsa,MAAA5B,KAAA,IAAAkC,KAAAhB,IAAA/V,OACA,IAAAyW,MAAA5Y,QAAA0Y,UACAT,WAAAa,aASAI,KAAAzZ,UAAAwZ,IAAA,WACAjb,KAAAka,IAAAjY,MAAA,KAAAjC,KAAA8B,QAEA2P,QAAA4J,MAAA,UACA5J,QAAAC,SAAA,EACAD,QAAA6J,OACA7J,QAAA8J,QACA9J,QAAA+J,QAAA,GACA/J,QAAAgK,YAIAhK,QAAAiK,GAAAP,KACA1J,QAAAkK,YAAAR,KACA1J,QAAAmK,KAAAT,KACA1J,QAAAoK,IAAAV,KACA1J,QAAAqK,eAAAX,KACA1J,QAAAsK,mBAAAZ,KACA1J,QAAAuK,KAAAb,KAEA1J,QAAAwK,QAAA,SAAApb,MACA,MAAA,IAAAkC,MAAA,qCAGA0O,QAAAyK,IAAA,WAA2B,MAAA,KAC3BzK,QAAA0K,MAAA,SAAAC,KACA,MAAA,IAAArZ,MAAA,mCAEA0O,QAAA4K,MAAA,WAA4B,OAAA","file":"dist/react-draggable.min.js.map","sourceRoot":"dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f74b445df532346fffaa","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"]} \ No newline at end of file diff --git a/package.json b/package.json index 24334e23..13dfa87c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "2.2.6", + "version": "3.0.0", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -77,4 +77,4 @@ "dependencies": { "classnames": "^2.2.5" } -} +} \ No newline at end of file From 56c11e440b962f975f905d640ce01a2c075fb8a8 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 14:35:19 -0400 Subject: [PATCH 263/412] test(Travis): Use HeadlessChrome --- .travis.yml | 1 - karma.conf.js | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 961dbc32..683bb258 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,6 @@ node_js: - "8" cache: yarn before_script: - - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1024x768x16" - sleep 3 # give xvfb some time to start diff --git a/karma.conf.js b/karma.conf.js index e420e67b..0fe7d29d 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -65,12 +65,18 @@ module.exports = function(config) { autoWatch: false, - browsers: ['PhantomJS_custom', 'Firefox', process.env.TRAVIS ? 'Chrome_travis_ci' : 'Chrome'], + browsers: ['PhantomJS_custom', 'Firefox', 'HeadlessChrome'], customLaunchers: { - Chrome_travis_ci: { + HeadlessChrome: { base: 'Chrome', - flags: ['--no-sandbox'] + flags: [ + '--no-sandbox', + '--headless', + '--disable-gpu', + // Without a remote debugging port, Google Chrome exits immediately. + '--remote-debugging-port=9222', + ] }, PhantomJS_custom: { base: 'PhantomJS', From df25e95e219049d6232f0ed0d0ffab9f236012a7 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 15:09:05 -0400 Subject: [PATCH 264/412] fix(flow): Rework types to not use interfaces so this doesn't throw errors for consumers --- .flowconfig | 4 ---- interfaces/dom.js | 16 ---------------- lib/Draggable.js | 3 +-- lib/DraggableCore.js | 2 +- lib/utils/domFns.js | 2 +- lib/utils/positionFns.js | 2 +- lib/utils/types.js | 12 ++++++++++++ package.json | 6 +++--- 8 files changed, 19 insertions(+), 28 deletions(-) delete mode 100644 interfaces/dom.js diff --git a/.flowconfig b/.flowconfig index 664564c6..f53979f7 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,13 +1,9 @@ [ignore] -.*/node_modules/.* [include] lib/ index.js -[libs] -interfaces/ - [options] suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowFixMe.* suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowBug.* diff --git a/interfaces/dom.js b/interfaces/dom.js deleted file mode 100644 index 01663d69..00000000 --- a/interfaces/dom.js +++ /dev/null @@ -1,16 +0,0 @@ -// Missing in Flow -declare class SVGElement extends HTMLElement { -} - -// Missing targetTouches -declare class TouchEvent2 extends TouchEvent { - changedTouches: TouchList; - targetTouches: TouchList; -} - -declare type MouseTouchEvent = MouseEvent & TouchEvent2; - -// Missing in Flow -declare module 'prop-types' { - declare function exports(args: any): any; -} \ No newline at end of file diff --git a/lib/Draggable.js b/lib/Draggable.js index dd0cb888..50c6257b 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -2,7 +2,6 @@ import * as React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; -// $FlowIgnore import classNames from 'classnames'; import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; @@ -198,7 +197,7 @@ export default class Draggable extends React.Component = (e: T) => void | false; + +// Missing in Flow +export class SVGElement extends HTMLElement { +} + +// Missing targetTouches +export class TouchEvent2 extends TouchEvent { + changedTouches: TouchList; + targetTouches: TouchList; +} + +export type MouseTouchEvent = MouseEvent & TouchEvent2; diff --git a/package.json b/package.json index 13dfa87c..4299c5c5 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,6 @@ "phantomjs-prebuilt": "^2.1.15", "power-assert": "^1.4.4", "pre-commit": "^1.2.2", - "prop-types": "^15.5.10", "react": "^15.6.1", "react-dom": "^15.6.1", "react-frame-component": "^1.1.1", @@ -75,6 +74,7 @@ "test" ], "dependencies": { - "classnames": "^2.2.5" + "classnames": "^2.2.5", + "prop-types": "^15.5.10" } -} \ No newline at end of file +} From bcabf18175ab2c60e1f95a20fa0a5902bcabc1a0 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 15:09:24 -0400 Subject: [PATCH 265/412] chore(yarn): re-lock --- yarn.lock | 1234 ++++++++++++++++++----------------------------------- 1 file changed, 404 insertions(+), 830 deletions(-) diff --git a/yarn.lock b/yarn.lock index c077250e..5673fb8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,17 +8,13 @@ dependencies: "@types/react" "*" -"@types/react@*": - version "16.0.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.2.tgz#0b31a73cdde6272b719e5b05a7df6d1e2654a804" - "@types/react@^15.5.3": version "15.6.1" resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.1.tgz#497f7228762da4432e335957cb34fe9b40f150ae" abbrev@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" accepts@1.3.3, accepts@~1.3.3: version "1.3.3" @@ -34,8 +30,8 @@ acorn-dynamic-import@^2.0.0: acorn "^4.0.3" acorn-es7-plugin@^1.0.12: - version "1.1.3" - resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.3.tgz#6a032a71f1faf396a1a29729c7b150fe480cc17a" + version "1.1.7" + resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" acorn-jsx@^3.0.0: version "3.0.1" @@ -47,11 +43,7 @@ acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" - -acorn@^4.0.3: +acorn@^4.0.0, acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" @@ -64,21 +56,14 @@ after@0.8.2: resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" ajv-keywords@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" ajv-keywords@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" -ajv@^4.7.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.9.0.tgz#5a358085747b134eb567d6d15e015f1d7802f45c" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^4.9.1: +ajv@^4.7.0, ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: @@ -119,8 +104,8 @@ ansi-regex@^0.2.0, ansi-regex@^0.2.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" ansi-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-regex@^3.0.0: version "3.0.0" @@ -141,22 +126,22 @@ ansi-styles@^3.1.0: color-convert "^1.9.0" anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" dependencies: - arrify "^1.0.0" micromatch "^2.1.5" + normalize-path "^2.0.0" aproba@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + version "1.1.2" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" are-we-there-yet@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" dependencies: delegates "^1.0.0" - readable-stream "^2.0.0 || ^1.1.13" + readable-stream "^2.0.6" argparse@^1.0.7: version "1.0.9" @@ -171,8 +156,8 @@ arr-diff@^2.0.0: arr-flatten "^1.0.1" arr-flatten@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" array-filter@^1.0.0: version "1.0.0" @@ -224,8 +209,8 @@ arrify@^1.0.0: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" asap@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" asn1.js@^4.0.0: version "4.9.1" @@ -239,14 +224,14 @@ asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" -assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - assert@^1.1.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" @@ -261,12 +246,6 @@ async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.0.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385" - dependencies: - lodash "^4.14.0" - async@^2.1.2: version "2.5.0" resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" @@ -286,8 +265,8 @@ aws-sign2@~0.6.0: resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" aws4@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" babel-cli@^6.26.0: version "6.26.0" @@ -351,19 +330,7 @@ babel-eslint@^7.2.3: babel-types "^6.23.0" babylon "^6.17.0" -babel-generator@^6.1.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.19.0.tgz#9b2f244204777a3d6810ec127c673c87b349fac5" - dependencies: - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.19.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.2.0" - source-map "^0.5.0" - -babel-generator@^6.26.0: +babel-generator@^6.1.0, babel-generator@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" dependencies: @@ -516,12 +483,6 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" -babel-messages@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" - dependencies: - babel-runtime "^6.0.0" - babel-plugin-check-es2015-constants@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" @@ -969,13 +930,6 @@ babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@^6.0.0, babel-runtime@^6.9.0, babel-runtime@^6.9.1: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.9.5" - babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1007,16 +961,7 @@ babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.19.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.19.0.tgz#8db2972dbed01f1192a8b602ba1e1e4c516240b9" - dependencies: - babel-runtime "^6.9.1" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - -babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -1025,11 +970,7 @@ babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@^6.1.0: - version "6.14.1" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" - -babylon@^6.17.0, babylon@^6.18.0: +babylon@^6.1.0, babylon@^6.17.0, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1037,10 +978,6 @@ backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1050,20 +987,20 @@ base64-arraybuffer@0.1.5: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" base64id@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" -batch@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" bcrypt-pbkdf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" dependencies: tweetnacl "^0.14.3" @@ -1078,14 +1015,8 @@ big.js@^3.1.3: resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" binary-extensions@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" - -bl@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" - dependencies: - readable-stream "~2.0.5" + version "1.10.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" blob@0.0.4: version "0.0.4" @@ -1098,8 +1029,8 @@ block-stream@*: inherits "~2.0.0" bluebird@^3.3.0: - version "3.4.6" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -1137,13 +1068,6 @@ boom@2.x.x: dependencies: hoek "2.x.x" -brace-expansion@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - brace-expansion@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" @@ -1224,10 +1148,6 @@ buffer-indexof@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz#f54f647c4f4e25228baa656a2e57e43d5f270982" -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - buffer-xor@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -1248,17 +1168,17 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" -bytes@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" - bytes@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" +bytes@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" + call-matcher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.0.tgz#eafa31036dbfaa9c0d1716f12ddacfd9c69ef22f" + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8" dependencies: core-js "^2.0.0" deep-equal "^1.0.0" @@ -1306,10 +1226,6 @@ camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -1349,22 +1265,7 @@ chalk@^2.0.0, chalk@^2.1.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -chokidar@^1.4.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: +chokidar@^1.4.1, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -1386,9 +1287,9 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-json@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" classnames@^2.2.5: version "2.2.5" @@ -1454,16 +1355,10 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.11.0, commander@~2.11.0: +commander@^2.11.0, commander@^2.3.0, commander@~2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" -commander@^2.3.0, commander@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1484,36 +1379,29 @@ component-inherit@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" -compressible@~2.0.8: - version "2.0.9" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.9.tgz#6daab4e2b599c2770dd9e21e7a891b1c5a755425" +compressible@~2.0.10: + version "2.0.11" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" dependencies: - mime-db ">= 1.24.0 < 2" + mime-db ">= 1.29.0 < 2" compression@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" + version "1.7.0" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d" dependencies: accepts "~1.3.3" - bytes "2.3.0" - compressible "~2.0.8" - debug "~2.2.0" + bytes "2.5.0" + compressible "~2.0.10" + debug "2.6.8" on-headers "~1.0.1" - vary "~1.1.0" + safe-buffer "5.1.1" + vary "~1.1.1" concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -concat-stream@1.6.0, concat-stream@^1.6.0: +concat-stream@1.6.0, concat-stream@^1.4.7, concat-stream@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -1521,14 +1409,6 @@ concat-stream@1.6.0, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^1.4.7: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - connect-history-api-fallback@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" @@ -1556,9 +1436,9 @@ constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" -content-disposition@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" content-type@~1.0.2: version "1.0.2" @@ -1580,15 +1460,11 @@ core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" - -core-js@^2.5.0: +core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1666,15 +1542,15 @@ custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" -d@^0.1.1, d@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" dependencies: - es5-ext "~0.10.2" + es5-ext "^0.10.9" dashdash@^1.12.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" dependencies: assert-plus "^1.0.0" @@ -1682,17 +1558,13 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - -debug@2.2.0, debug@~2.2.0: +debug@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: ms "0.7.1" -debug@2.3.3, debug@^2.2.0: +debug@2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" dependencies: @@ -1704,7 +1576,7 @@ debug@2.6.7: dependencies: ms "2.0.0" -debug@2.6.8, debug@^2.6.6, debug@^2.6.8: +debug@2.6.8, debug@^2.2.0, debug@^2.6.6, debug@^2.6.8: version "2.6.8" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" dependencies: @@ -1719,8 +1591,8 @@ deep-equal@^1.0.0, deep-equal@^1.0.1: resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" deep-extend@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" deep-is@~0.1.3: version "0.1.3" @@ -1764,14 +1636,10 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@1.1.1: +depd@1.1.1, depd@~1.1.0, depd@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" -depd@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -1982,61 +1850,61 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" -es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: - version "0.10.12" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.29" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.29.tgz#768eb2dfc4957bcf35fa0568f193ab71ede53fd8" dependencies: es6-iterator "2" es6-symbol "~3.1" -es6-iterator@2: - version "2.0.0" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" dependencies: - d "^0.1.1" - es5-ext "^0.10.7" - es6-symbol "3" + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" es6-map@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-iterator "2" - es6-set "~0.1.3" - es6-symbol "~3.1.0" - event-emitter "~0.3.4" + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" es6-promise@~4.0.3: version "4.0.5" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" -es6-set@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-iterator "2" - es6-symbol "3" - event-emitter "~0.3.4" + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" -es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" dependencies: - d "~0.1.1" - es5-ext "~0.10.11" + d "1" + es5-ext "~0.10.14" es6-weak-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" dependencies: - d "^0.1.1" - es5-ext "^0.10.8" - es6-iterator "2" - es6-symbol "3" + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" escape-html@~1.0.3: version "1.0.3" @@ -2133,8 +2001,8 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" espurify@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.6.0.tgz#6cb993582d9422bd6f2d4b258aadb14833f394f0" + version "1.7.0" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" dependencies: core-js "^2.0.0" @@ -2145,34 +2013,30 @@ esquery@^1.0.0: estraverse "^4.0.0" esrecurse@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" dependencies: - estraverse "~4.1.0" + estraverse "^4.1.0" object-assign "^4.0.1" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" -estraverse@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" - esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -etag@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" +etag@~1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" -event-emitter@~0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" dependencies: - d "~0.1.1" - es5-ext "~0.10.7" + d "1" + es5-ext "~0.10.14" eventemitter3@1.x.x: version "1.2.0" @@ -2234,39 +2098,41 @@ expand-range@^1.8.1: fill-range "^2.1.0" express@^4.13.3: - version "4.14.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" + version "4.15.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1" dependencies: accepts "~1.3.3" array-flatten "1.1.1" - content-disposition "0.5.1" + content-disposition "0.5.2" content-type "~1.0.2" cookie "0.3.1" cookie-signature "1.0.6" - debug "~2.2.0" - depd "~1.1.0" + debug "2.6.8" + depd "~1.1.1" encodeurl "~1.0.1" escape-html "~1.0.3" - etag "~1.7.0" - finalhandler "0.5.0" - fresh "0.3.0" + etag "~1.8.0" + finalhandler "~1.0.4" + fresh "0.5.0" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" parseurl "~1.3.1" path-to-regexp "0.1.7" - proxy-addr "~1.1.2" - qs "6.2.0" + proxy-addr "~1.1.5" + qs "6.5.0" range-parser "~1.2.0" - send "0.14.1" - serve-static "~1.11.1" - type-is "~1.6.13" + send "0.15.4" + serve-static "1.12.4" + setprototypeof "1.0.3" + statuses "~1.3.1" + type-is "~1.6.15" utils-merge "1.0.0" - vary "~1.1.0" + vary "~1.1.1" extend@^3.0.0, extend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" external-editor@^2.0.4: version "2.0.4" @@ -2282,15 +2148,6 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" -extract-zip@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" - dependencies: - concat-stream "1.5.0" - debug "0.7.4" - mkdirp "0.5.0" - yauzl "2.4.1" - extract-zip@~1.6.5: version "1.6.5" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440" @@ -2300,17 +2157,17 @@ extract-zip@~1.6.5: mkdirp "0.5.0" yauzl "2.4.1" -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" fast-levenshtein@~2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" faye-websocket@^0.10.0: version "0.10.0" @@ -2319,14 +2176,14 @@ faye-websocket@^0.10.0: websocket-driver ">=0.5.1" faye-websocket@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.0.tgz#d9ccf0e789e7db725d74bc4877d23aa42972ac50" + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" dependencies: websocket-driver ">=0.5.1" fbjs@^0.8.9: - version "0.8.12" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" + version "0.8.14" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c" dependencies: core-js "^1.0.0" isomorphic-fetch "^2.1.1" @@ -2360,8 +2217,8 @@ file-size@0.0.5: resolved "https://registry.yarnpkg.com/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" filename-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" fill-range@^2.1.0: version "2.2.3" @@ -2373,17 +2230,7 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -finalhandler@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" - dependencies: - debug "~2.2.0" - escape-html "~1.0.3" - on-finished "~2.3.0" - statuses "~1.3.0" - unpipe "~1.0.0" - -finalhandler@1.0.4: +finalhandler@1.0.4, finalhandler@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" dependencies: @@ -2417,10 +2264,10 @@ find-up@^2.0.0, find-up@^2.1.0: locate-path "^2.0.0" flat-cache@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" dependencies: - circular-json "^0.3.0" + circular-json "^0.3.1" del "^2.0.2" graceful-fs "^4.1.2" write "^0.2.1" @@ -2429,15 +2276,15 @@ flow-bin@^0.53.1: version "0.53.1" resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.53.1.tgz#9b22b63a23c99763ae533ebbab07f88c88c97d84" -for-in@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" for-own@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: - for-in "^0.1.5" + for-in "^1.0.1" foreach@^2.0.5: version "2.0.5" @@ -2447,17 +2294,9 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@~1.0.0-rc4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" - dependencies: - async "^2.0.1" - combined-stream "^1.0.5" - mime-types "^2.1.11" - form-data@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" dependencies: asynckit "^0.4.0" combined-stream "^1.0.5" @@ -2467,9 +2306,9 @@ forwarded@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" -fresh@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" +fresh@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" fs-access@^1.0.0: version "1.0.1" @@ -2477,16 +2316,6 @@ fs-access@^1.0.0: dependencies: null-check "^1.0.0" -fs-extra@~0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" @@ -2504,13 +2333,13 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.0.15" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" dependencies: nan "^2.3.0" - node-pre-gyp "^0.6.29" + node-pre-gyp "^0.6.36" -fstream-ignore@~1.0.5: +fstream-ignore@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" dependencies: @@ -2518,9 +2347,9 @@ fstream-ignore@~1.0.5: inherits "2" minimatch "^3.0.0" -fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" @@ -2535,13 +2364,12 @@ functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" -gauge@~2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.1.tgz#388473894fe8be5e13ffcdb8b93e4ed0616428c7" +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" - has-color "^0.1.7" has-unicode "^2.0.0" object-assign "^4.1.0" signal-exit "^3.0.0" @@ -2549,16 +2377,6 @@ gauge@~2.7.1: strip-ansi "^3.0.1" wide-align "^1.1.0" -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -2572,8 +2390,8 @@ get-stream@^3.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" getpass@^0.1.1: - version "0.1.6" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" dependencies: assert-plus "^1.0.0" @@ -2590,18 +2408,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^7.0.3, glob@^7.0.5: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.1, glob@^7.1.2: +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -2638,12 +2445,8 @@ globby@^6.1.0: pinkie-promise "^2.0.0" graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" handle-thing@^1.2.5: version "1.2.5" @@ -2653,15 +2456,6 @@ har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - har-validator@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" @@ -2687,10 +2481,6 @@ has-binary@0.1.7: dependencies: isarray "0.0.1" -has-color@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" @@ -2782,15 +2572,7 @@ http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" -http-errors@~1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" - dependencies: - inherits "2.0.3" - setprototypeof "1.0.2" - statuses ">= 1.3.1 < 2" - -http-errors@~1.6.1: +http-errors@~1.6.1, http-errors@~1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" dependencies: @@ -2808,14 +2590,7 @@ http-proxy-middleware@~0.17.4: lodash "^4.17.2" micromatch "^2.3.11" -http-proxy@^1.13.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" - -http-proxy@^1.16.2: +http-proxy@^1.13.0, http-proxy@^1.16.2: version "1.16.2" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" dependencies: @@ -2838,14 +2613,10 @@ iconv-lite@0.4.15: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" -iconv-lite@^0.4.17: +iconv-lite@^0.4.17, iconv-lite@~0.4.13: version "0.4.18" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" -iconv-lite@~0.4.13: - version "0.4.13" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" - ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" @@ -2913,8 +2684,8 @@ internal-ip@^1.2.0: meow "^3.3.0" interpret@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" invariant@^2.2.2: version "2.2.2" @@ -2930,9 +2701,9 @@ ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -ipaddr.js@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" +ipaddr.js@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" is-arrayish@^0.2.1: version "0.2.1" @@ -2944,9 +2715,9 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-buffer@^1.0.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" +is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" is-builtin-module@^1.0.0: version "1.0.0" @@ -2963,8 +2734,8 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" is-dotfile@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" is-equal-shallow@^0.1.3: version "0.1.3" @@ -2981,8 +2752,8 @@ is-extglob@^1.0.0: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" is-extglob@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" is-finite@^1.0.0: version "1.0.2" @@ -3012,25 +2783,22 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-my-json-valid@^2.12.4: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - is-number@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" -is-number@^2.0.2, is-number@^2.1.0: +is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" dependencies: kind-of "^3.0.2" +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -3059,10 +2827,6 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -3104,12 +2868,8 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" isbinaryfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.1.tgz#6e99573675372e841a0520c036b41513d783e79e" - -isexe@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" + version "3.0.2" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" isexe@^2.0.0: version "2.0.0" @@ -3136,16 +2896,6 @@ jasmine-core@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.7.0.tgz#50ff8c4f92d8ef5c0b2c1b846dd263ed85152091" -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -js-tokens@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" - js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" @@ -3158,8 +2908,8 @@ js-yaml@^3.9.1: esprima "^4.0.0" jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" jschardet@^1.4.2: version "1.5.1" @@ -3173,11 +2923,7 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-loader@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" - -json-loader@^0.5.7: +json-loader@^0.5.4, json-loader@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" @@ -3203,11 +2949,7 @@ json3@3.3.2, json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" -json5@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" - -json5@^0.5.1: +json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -3221,17 +2963,14 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" -jsonpointer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" - jsprim@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" dependencies: - extsprintf "1.0.2" + assert-plus "1.0.0" + extsprintf "1.3.0" json-schema "0.2.3" - verror "1.3.6" + verror "1.10.0" jsx-ast-utils@^2.0.0: version "2.0.0" @@ -3324,10 +3063,16 @@ kew@~0.7.0: resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" kind-of@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: - is-buffer "^1.0.2" + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" klaw@^1.0.0: version "1.3.1" @@ -3376,8 +3121,8 @@ loader-runner@^2.3.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" loader-utils@^0.2.5: - version "0.2.16" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" dependencies: big.js "^3.1.3" emojis-list "^2.0.0" @@ -3403,11 +3148,7 @@ lodash@^3.8.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: - version "4.17.2" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" - -lodash@^4.17.2, lodash@^4.17.4: +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3426,13 +3167,7 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0, loose-envify@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" - dependencies: - js-tokens "^2.0.0" - -loose-envify@^1.3.1: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: @@ -3483,13 +3218,6 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -memory-fs@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -3538,30 +3266,24 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.24.0 < 2", mime-db@~1.25.0: - version "1.25.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" - -mime-db@~1.29.0: +"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0: version "1.29.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: - version "2.1.13" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" - dependencies: - mime-db "~1.25.0" - -mime-types@~2.1.15: +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: version "2.1.16" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: mime-db "~1.29.0" -mime@1.3.4, mime@^1.2.11, mime@^1.3.4: +mime@1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" +mime@^1.2.11, mime@^1.3.4: + version "1.3.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" @@ -3574,19 +3296,13 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -minimatch@^3.0.0, minimatch@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimatch@^3.0.4: +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -3594,13 +3310,17 @@ minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" dependencies: minimist "0.0.8" -mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -3634,8 +3354,8 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" nan@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" natural-compare@^1.4.0: version "1.4.0" @@ -3646,8 +3366,8 @@ negotiator@0.6.1: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" node-fetch@^1.0.1: - version "1.6.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7" dependencies: encoding "^0.1.11" is-stream "^1.0.1" @@ -3684,29 +3404,26 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" -node-pre-gyp@^0.6.29: - version "0.6.31" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" +node-pre-gyp@^0.6.36: + version "0.6.36" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" dependencies: - mkdirp "~0.5.1" - nopt "~3.0.6" - npmlog "^4.0.0" - rc "~1.1.6" - request "^2.75.0" - rimraf "~2.5.4" - semver "~5.3.0" - tar "~2.2.1" - tar-pack "~3.3.0" - -node-uuid@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" -nopt@~3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" dependencies: abbrev "1" + osenv "^0.1.4" normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.4.0" @@ -3717,9 +3434,11 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" npm-run-path@^2.0.0: version "2.0.2" @@ -3727,13 +3446,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.1.tgz#d14f503b4cd79710375553004ba96e6662fbc0b8" +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" - gauge "~2.7.1" + gauge "~2.7.3" set-blocking "~2.0.0" null-check@^1.0.0: @@ -3748,11 +3467,11 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@4.1.0, object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" -object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -3785,18 +3504,12 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@^1.3.0: +once@^1.3.0, once@^1.3.3: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -once@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -3868,10 +3581,17 @@ os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" -os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + output-file-sync@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" @@ -3975,6 +3695,10 @@ path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -4011,7 +3735,7 @@ performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" -phantomjs-prebuilt@^2.1.15: +phantomjs-prebuilt@^2.1.15, phantomjs-prebuilt@^2.1.7: version "2.1.15" resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.15.tgz#20f86e82d3349c505917527745b7a411e08b3903" dependencies: @@ -4025,20 +3749,6 @@ phantomjs-prebuilt@^2.1.15: request-progress "~2.0.1" which "~1.2.10" -phantomjs-prebuilt@^2.1.7: - version "2.1.13" - resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.13.tgz#66556ad9e965d893ca5a7dc9e763df7e8697f76d" - dependencies: - es6-promise "~4.0.3" - extract-zip "~1.5.0" - fs-extra "~0.30.0" - hasha "~2.2.0" - kew "~0.7.0" - progress "~1.1.8" - request "~2.74.0" - request-progress "~2.0.1" - which "~1.2.10" - pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -4083,8 +3793,8 @@ power-assert-context-formatter@^1.0.7: power-assert-context-traversal "^1.1.1" power-assert-context-reducer-ast@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.1.tgz#bb419c65ea88c9a4dfc34a9dbcf82e971f6f69bc" + version "1.1.2" + resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.2.tgz#484a99e26f4973ff8832e5c5cc756702e6094174" dependencies: acorn "^4.0.0" acorn-es7-plugin "^1.0.12" @@ -4133,8 +3843,8 @@ power-assert-renderer-comparison@^1.0.7: type-name "^2.0.1" power-assert-renderer-diagram@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.1.tgz#7e0c82cc08a84b155e51b5ae94f59709778a65fb" + version "1.1.2" + resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.2.tgz#655f8f711935a9b6d541b86327654717c637a986" dependencies: core-js "^2.0.0" power-assert-renderer-base "^1.1.1" @@ -4179,11 +3889,7 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -private@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" - -private@^0.1.7: +private@^0.1.6, private@^0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" @@ -4192,8 +3898,8 @@ process-nextick-args@~1.0.6: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" process@^0.11.0: - version "0.11.9" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" progress@^2.0.0: version "2.0.0" @@ -4204,8 +3910,8 @@ progress@~1.1.8: resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" promise@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" dependencies: asap "~2.0.3" @@ -4216,12 +3922,12 @@ prop-types@^15.5.10: fbjs "^0.8.9" loose-envify "^1.3.1" -proxy-addr@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" +proxy-addr@~1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" dependencies: forwarded "~0.1.0" - ipaddr.js "1.1.1" + ipaddr.js "1.4.0" prr@~0.0.0: version "0.0.0" @@ -4253,17 +3959,13 @@ qjobs@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" -qs@6.2.0, qs@~6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" - qs@6.4.0, qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" +qs@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" querystring-es3@^0.2.0: version "0.2.1" @@ -4282,11 +3984,11 @@ querystringify@~1.0.0: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" randomatic@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" dependencies: - is-number "^2.0.2" - kind-of "^3.0.2" + is-number "^3.0.0" + kind-of "^4.0.0" randombytes@^2.0.0, randombytes@^2.0.1: version "2.0.5" @@ -4306,14 +4008,14 @@ raw-body@~2.2.0: iconv-lite "0.4.15" unpipe "1.0.0" -rc@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" +rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" dependencies: deep-extend "~0.4.0" ini "~1.3.0" minimist "^1.2.0" - strip-json-comments "~1.0.4" + strip-json-comments "~2.0.1" react-dom@^15.6.1: version "15.6.1" @@ -4368,30 +4070,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -"readable-stream@^2.0.0 || ^1.1.13", readable-stream@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - dependencies: - buffer-shims "^1.0.0" - 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" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@~2.0.0, readable-stream@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - 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" - -readable-stream@^2.0.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -4440,10 +4119,6 @@ regenerator-runtime@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" -regenerator-runtime@^0.9.5: - version "0.9.6" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" - regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -4477,6 +4152,10 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" @@ -4501,58 +4180,7 @@ request-progress@~2.0.1: dependencies: throttleit "^1.0.0" -request@^2.75.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - 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" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -request@~2.74.0: - version "2.74.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - bl "~1.1.2" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~1.0.0-rc4" - har-validator "~2.0.6" - hawk "~3.1.3" - 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.1" - qs "~6.2.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - -request@~2.81.0: +request@^2.81.0, request@~2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -4603,8 +4231,10 @@ resolve-from@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" resolve@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + dependencies: + path-parse "^1.0.5" restore-cursor@^2.0.0: version "2.0.0" @@ -4619,13 +4249,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@~2.5.1, rimraf@~2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - -rimraf@^2.6.0: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.0, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: @@ -4654,7 +4278,7 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -4668,56 +4292,52 @@ selfsigned@^1.9.1: dependencies: node-forge "0.6.33" -"semver@2 || 3 || 4 || 5", semver@^5.4.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" -semver@^5.3.0, semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - semver@~4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" -send@0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" +send@0.15.4: + version "0.15.4" + resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9" dependencies: - debug "~2.2.0" - depd "~1.1.0" + debug "2.6.8" + depd "~1.1.1" destroy "~1.0.4" encodeurl "~1.0.1" escape-html "~1.0.3" - etag "~1.7.0" - fresh "0.3.0" - http-errors "~1.5.0" + etag "~1.8.0" + fresh "0.5.0" + http-errors "~1.6.2" mime "1.3.4" - ms "0.7.1" + ms "2.0.0" on-finished "~2.3.0" range-parser "~1.2.0" - statuses "~1.3.0" + statuses "~1.3.1" serve-index@^1.7.2: - version "1.8.0" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" + version "1.9.0" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.0.tgz#d2b280fc560d616ee81b48bf0fa82abed2485ce7" dependencies: accepts "~1.3.3" - batch "0.5.3" - debug "~2.2.0" + batch "0.6.1" + debug "2.6.8" escape-html "~1.0.3" - http-errors "~1.5.0" - mime-types "~2.1.11" + http-errors "~1.6.1" + mime-types "~2.1.15" parseurl "~1.3.1" -serve-static@~1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" +serve-static@1.12.4: + version "1.12.4" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" dependencies: encodeurl "~1.0.1" escape-html "~1.0.3" parseurl "~1.3.1" - send "0.14.1" + send "0.15.4" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -4731,10 +4351,6 @@ setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" -setprototypeof@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" - setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" @@ -4755,11 +4371,7 @@ shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" -signal-exit@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" - -signal-exit@^3.0.2: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -4855,11 +4467,7 @@ source-map@^0.1.41: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -source-map@^0.5.6, source-map@~0.5.3: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -4912,8 +4520,8 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -4922,7 +4530,6 @@ sshpk@^1.7.0: optionalDependencies: bcrypt-pbkdf "^1.0.0" ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" jsbn "~0.1.0" tweetnacl "~0.14.0" @@ -4935,7 +4542,7 @@ static-server@^2.0.5: file-size "0.0.5" mime "^1.2.11" -"statuses@>= 1.3.1 < 2", statuses@~1.3.0, statuses@~1.3.1: +"statuses@>= 1.3.1 < 2", statuses@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" @@ -4964,14 +4571,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^3.0.0" - -string-width@^2.1.0: +string-width@^2.0.0, string-width@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: @@ -5038,10 +4638,6 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -5055,8 +4651,8 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" @@ -5081,20 +4677,20 @@ tapable@^0.2.7: version "0.2.8" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" -tar-pack@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" - dependencies: - debug "~2.2.0" - fstream "~1.0.10" - fstream-ignore "~1.0.5" - once "~1.3.3" - readable-stream "~2.1.4" - rimraf "~2.5.1" - tar "~2.2.1" - uid-number "~0.0.6" - -tar@~2.2.1: +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -5148,10 +4744,6 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-fast-properties@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" - to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -5188,13 +4780,9 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" type-check@~0.3.2: version "0.3.2" @@ -5202,13 +4790,6 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.13: - version "1.6.14" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.13" - type-is@~1.6.15: version "1.6.15" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" @@ -5220,17 +4801,17 @@ type-name@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" -typedarray@^0.0.6, typedarray@~0.0.5: +typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" typescript@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.2.tgz#f8395f85d459276067c988aa41837a8f82870844" + version "2.5.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.1.tgz#ce7cc93ada3de19475cc9d17e3adea7aee1832aa" ua-parser-js@^0.7.9: - version "0.7.12" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" + version "0.7.14" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca" uglify-js@^2.8.29: version "2.8.29" @@ -5260,7 +4841,7 @@ uglifyjs-webpack-plugin@^0.4.6: uglify-js "^2.8.29" webpack-sources "^1.0.1" -uid-number@~0.0.6: +uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -5331,8 +4912,8 @@ uuid@^2.0.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" uuid@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728" + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" v8flags@^2.1.1: version "2.1.1" @@ -5347,15 +4928,17 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -vary@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" +vary@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" dependencies: - extsprintf "1.0.2" + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" vm-browserify@0.0.4: version "0.0.4" @@ -5381,16 +4964,7 @@ wbuf@^1.1.0, wbuf@^1.7.2: dependencies: minimalistic-assert "^1.0.0" -webpack-dev-middleware@^1.0.11: - version "1.8.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" - dependencies: - memory-fs "~0.3.0" - mime "^1.3.4" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - -webpack-dev-middleware@^1.11.0: +webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.11.0: version "1.12.0" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" dependencies: @@ -5473,8 +5047,8 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" whatwg-fetch@>=0.10.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.1.tgz#078b9461bbe91cea73cbce8bb122a05f9e92b772" + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" which-module@^1.0.0: version "1.0.0" @@ -5484,23 +5058,23 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@1.2.x, which@^1.2.1, which@~1.2.10: - version "1.2.12" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" +which@1.2.x, which@~1.2.10: + version "1.2.14" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: - isexe "^1.1.1" + isexe "^2.0.0" -which@^1.2.9: +which@^1.2.1, which@^1.2.9: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: isexe "^2.0.0" wide-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" dependencies: - string-width "^1.0.1" + string-width "^1.0.2" window-size@0.1.0: version "0.1.0" From f6368d9a83951c5fd585a0c2b9b4f9eb8c82473f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 21 Aug 2017 15:11:30 -0400 Subject: [PATCH 266/412] release v3.0.1 --- CHANGELOG.md | 5 +++ bower.json | 2 +- dist/react-draggable.js | 80 ++++++++++++++++----------------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 +- 7 files changed, 51 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77dcc039..700b2cf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 3.0.1 (Aug 21, 2017) + +- Bugfix: Flow-type should no longer throw errors for consumers. + - It appears Flow can't resolve a sub-package's interfaces. + ### 3.0.0 (Aug 21, 2017) > Due to an export change, this is semver-major. diff --git a/bower.json b/bower.json index e9239d65..935061b3 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.0", + "version": "3.0.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 74e3d5e7..1a95d0e2 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -288,7 +288,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -/*:: import type {ControlPosition} from './types';*/ +/*:: import type {ControlPosition, MouseTouchEvent} from './types';*/ var matchesSelectorFunc = ''; @@ -540,45 +540,43 @@ var emptyFunction = __webpack_require__(1); var warning = emptyFunction; if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - (function () { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } - printWarning.apply(undefined, [format].concat(args)); + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; } - }; - })(); + + printWarning.apply(undefined, [format].concat(args)); + } + }; } module.exports = warning; @@ -612,7 +610,7 @@ var _domFns = __webpack_require__(5); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /*:: import type Draggable from '../Draggable';*/ -/*:: import type {Bounds, ControlPosition, DraggableData} from './types';*/ +/*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/ /*:: import type DraggableCore from '../DraggableCore';*/ function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/ { // If no bounds, short-circuit and move on @@ -788,7 +786,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Simple abstraction for dragging events names. -/*:: import type {EventHandler} from './utils/types';*/ +/*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/ var eventsFor = { touch: { start: 'touchstart', @@ -1302,8 +1300,6 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -// $FlowIgnore - /*:: import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';*/ /*:: import type {DraggableEventHandler} from './utils/types';*/ @@ -1463,7 +1459,7 @@ var Draggable = function (_React$Component) { key: 'componentDidMount', value: function componentDidMount() { // Check to see if the element passed is an instanceof SVGElement - if (typeof SVGElement !== 'undefined' && _reactDom2.default.findDOMNode(this) instanceof SVGElement) { + if (typeof window.SVGElement !== 'undefined' && _reactDom2.default.findDOMNode(this) instanceof window.SVGElement) { this.setState({ isElementSVG: true }); } } @@ -2602,6 +2598,10 @@ process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 8c0aabd2..4300a1f0 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap f74b445df532346fffaa",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","React","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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pHiBG,S,CAuHZF,Y,gBACF,wBAAcA,Y;AACjBrE,QAAM,M;AACNxB,UAAQ,K;AACRuH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACvJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB8F,YAAU;;kBA/HOsC,S;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7Ce8B,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOrJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAO0F,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQrG,OAAO0F,QAAP,CAAgB4D,eAAhB,CAAgCjD,KAA9C;;AAEA,MAAIgD,QAAQhD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAIhM,IAAI,CAAb,EAAgBA,IAAI+O,SAAS9O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI6O,mBAAmBG,IAAnB,EAAyBD,SAAS/O,CAAT,CAAzB,KAAyCgM,KAA7C,EAAoD,OAAO+C,SAAS/O,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS6O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAIvP,IAAI,CAAb,EAAgBA,IAAIqP,IAAIpP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIuP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAIrP,CAAJ,EAAOwP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAIrP,CAAJ,MAAW,GAAf,EAAoB;AACzBuP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAIrP,CAAJ,CAAP;AACD;AACF;AACD,SAAOsP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f74b445df532346fffaa","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap a62d047c3227730c04a8",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","React","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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S,CAuHZF,Y,gBACF,wBAAcA,Y;AACjBrE,QAAM,M;AACNxB,UAAQ,K;AACRuH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACvJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB8F,YAAU;;kBA/HOsC,S;;;;;;;ACpCrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7Ce8B,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOrJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAO0F,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQrG,OAAO0F,QAAP,CAAgB4D,eAAhB,CAAgCjD,KAA9C;;AAEA,MAAIgD,QAAQhD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAIhM,IAAI,CAAb,EAAgBA,IAAI+O,SAAS9O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI6O,mBAAmBG,IAAnB,EAAyBD,SAAS/O,CAAT,CAAzB,KAAyCgM,KAA7C,EAAoD,OAAO+C,SAAS/O,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS6O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAIvP,IAAI,CAAb,EAAgBA,IAAIqP,IAAIpP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIuP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAIrP,CAAJ,EAAOwP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAIrP,CAAJ,MAAW,GAAf,EAAoB;AACzBuP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAIrP,CAAJ,CAAP;AACD;AACF;AACD,SAAOsP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a62d047c3227730c04a8","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 1bd74b8a..70f68d37 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1 +1 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react-dom"),require("react")):root.ReactDraggable=factory(root.ReactDOM,root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_4__,__WEBPACK_EXTERNAL_MODULE_6__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=12)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=function(array,callback){for(var i=0,length=array.length;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(18),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(16)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);"production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&function(){var printWarning=function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}(),module.exports=warning},function(module,exports,__webpack_require__){"use strict";function cloneBounds(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:cloneBounds(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart),!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);if((0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent),!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,React.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return React.cloneElement(React.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(19))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){"undefined"!=typeof SVGElement&&_reactDom2.default.findDOMNode(this)instanceof SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return React.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),React.cloneElement(React.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(15);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x==1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];return getPropType(propValue)!==expectedType?new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`."):null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function isSymbol(propType,propValue){return"symbol"===propType||("Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol)}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":isSymbol(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){return propValue.constructor&&propValue.constructor.name?propValue.constructor.name:ANONYMOUS}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(18),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(16)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var printWarning=function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}module.exports=warning},function(module,exports,__webpack_require__){"use strict";function cloneBounds(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:cloneBounds(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart),!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);if((0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent),!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,React.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return React.cloneElement(React.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(19))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return React.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),React.cloneElement(React.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(15);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x==1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];return getPropType(propValue)!==expectedType?new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`."):null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function isSymbol(propType,propValue){return"symbol"===propType||("Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol)}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":isSymbol(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){return propValue.constructor&&propValue.constructor.name?propValue.constructor.name:ANONYMOUS}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n// $FlowIgnore\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"]} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap a62d047c3227730c04a8","../lib/utils/shims.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../node_modules/prop-types/index.js","../node_modules/fbjs/lib/warning.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/utils/log.js","../index.js","../lib/Draggable.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/getPrefix.js","../node_modules/process/browser.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_6__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","findInArray","array","callback","length","apply","isFunction","func","toString","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","DRAGGABLE_DEBUG","undefined","NODE_ENV","condition","b","e","f","error","args","argIndex","replace","framesToPop","matchesSelector","el","selector","matchesSelectorFunc","_shims","method","addClassName","className","classList","add","match","RegExp","removeClassName","remove","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","offsetParentRect","body","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","default","createSVGTransform","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","removeUserSelectStyles","window","getSelection","removeAllRanges","styleHacks","childStyle","arguments","_extends","touchAction","REACT_ELEMENT_TYPE","Symbol","for","$$typeof","warning","printWarning","_len","Array","_key","message","console","indexOf","_len2","_key2","concat","cloneBounds","bounds","right","bottom","findDOMNode","draggable","_reactDom2","getBoundPosition","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","_domFns","marginRight","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","React","_positionFns","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","_this","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","_log2","onStart","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","isArray","_snapToGrid","_snapToGrid2","_slicedToArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","Component","cloneElement","Children","only","children","style","displayName","propTypes","_propTypes2","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","onDragStart","dragged","uiData","newState","slackX","slackY","_getBoundPosition","_getBoundPosition2","onDragStop","Boolean","_this$props$position","defaultPosition","isElementSVG","warn","SVGElement","nextProps","_classNames","svgTransform","transformOpts","_props","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","_classnames2","_DraggableCore2","oneOf","oneOfType","shape","invariant","ReactPropTypesSecret","checkPropTypes","isValidElement","throwOnDirectAccess","getIteratorFn","maybeIterable","iteratorFn","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","is","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","secret","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","bind","createPrimitiveTypeChecker","expectedType","propValue","getPropType","getPreciseType","isNode","every","step","iterator","entries","next","done","value","entry","isSymbol","propType","Date","getPostfixForTypeWarning","getClassName","constructor","ReactPropTypes","symbol","any","typeChecker","element","createElementTypeChecker","instanceOf","expectedClass","expectedClassName","createNodeChecker","objectOf","key","expectedValues","JSON","stringify","arrayOfTypeCheckers","checker","shapeTypes","PropTypes","loggedTypeFailures","typeSpecs","values","getStack","typeSpecName","ex","shim","getShim","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","argType","push","hasOwn","join","getPrefix","prop","documentElement","prefixes","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","browserPrefixToStyle","toLowerCase","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","len","run","Item","noop","nextTick","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask"],"mappings":"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","file":"dist/react-draggable.min.js.map","sourceRoot":"dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a62d047c3227730c04a8","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"]} \ No newline at end of file diff --git a/package.json b/package.json index 4299c5c5..4be80154 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.0", + "version": "3.0.1", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -77,4 +77,4 @@ "classnames": "^2.2.5", "prop-types": "^15.5.10" } -} +} \ No newline at end of file From 6321465a9c4679dc0f1231dff41d98aecdfc1b4b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 22 Aug 2017 10:37:48 -0500 Subject: [PATCH 267/412] fix(pkg): ignore addl files in package Fixes #272 --- .npmignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.npmignore b/.npmignore index d8152725..35613a59 100644 --- a/.npmignore +++ b/.npmignore @@ -4,3 +4,6 @@ script specs karma.conf.js Makefile +yarn.lock +appveyor.yml +*.txt From db093e60fdbae3bf0c29195587d69f303e0eb1c8 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 22 Aug 2017 10:38:53 -0500 Subject: [PATCH 268/412] fix(tsc): Fix duplicated react types causing error --- package.json | 4 ++-- yarn.lock | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 4be80154..2243973d 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ }, "homepage": "https://github.com/mzabriskie/react-draggable", "devDependencies": { - "@types/react": "^15.5.3", + "@types/react": "^16.0.0", "@types/react-dom": "^15.5.3", "babel-cli": "^6.26.0", "babel-core": "^6.26.0", @@ -77,4 +77,4 @@ "classnames": "^2.2.5", "prop-types": "^15.5.10" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 5673fb8e..143d66fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@types/react-dom@^15.5.3": - version "15.5.3" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-15.5.3.tgz#4f26d09c5a92bc76728051ab5ee7116617d72f39" +"@types/react-dom@^16.0.0": + version "15.5.4" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-15.5.4.tgz#3f75ba86a2ce9a7d1d9e7d1ee3f186f3a9652d8f" dependencies: "@types/react" "*" -"@types/react@^15.5.3": - version "15.6.1" - resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.1.tgz#497f7228762da4432e335957cb34fe9b40f150ae" +"@types/react@*", "@types/react@^16.0.0": + version "16.0.3" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.3.tgz#494d5aa71fc071be6eb2a8d3d489da529b25294a" abbrev@1: version "1.1.0" From 6cf5f0791baddef4d2992fb9f27d2e2a9bde0cf5 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 22 Aug 2017 10:40:14 -0500 Subject: [PATCH 269/412] release v3.0.2 --- CHANGELOG.md | 6 ++++++ bower.json | 2 +- package.json | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 700b2cf5..5178adb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 3.0.2 (Aug 22, 2017) + +> 3.0.0 and 3.0.1 have been unpublished due to a large logfile making it into the package. + +- Bugfix: Tweaked `.npmignore`. + ### 3.0.1 (Aug 21, 2017) - Bugfix: Flow-type should no longer throw errors for consumers. diff --git a/bower.json b/bower.json index 935061b3..43d5e959 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.1", + "version": "3.0.2", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/package.json b/package.json index 2243973d..55983c36 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.1", + "version": "3.0.2", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -77,4 +77,4 @@ "classnames": "^2.2.5", "prop-types": "^15.5.10" } -} +} \ No newline at end of file From 592b8184656c4a116a43510d0902bf873b719f72 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 31 Aug 2017 15:10:46 -0500 Subject: [PATCH 270/412] fix(React): Fix deprecation warnings from import * Fixes #276 --- lib/Draggable.js | 5 +++-- lib/DraggableCore.js | 5 +++-- package.json | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index 50c6257b..4d11759f 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -1,5 +1,5 @@ // @flow -import * as React from 'react'; +import React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; import classNames from 'classnames'; @@ -10,6 +10,7 @@ import DraggableCore from './DraggableCore'; import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; import log from './utils/log'; import type {DraggableEventHandler} from './utils/types'; +import type {Element as ReactElement} from 'react'; type DraggableState = { dragging: boolean, @@ -300,7 +301,7 @@ export default class Draggable extends React.Component { + render(): ReactElement { let style = {}, svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging. diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 597ff6e8..54fb0180 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -1,5 +1,5 @@ // @flow -import * as React from 'react'; +import React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; import {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, @@ -9,6 +9,7 @@ import {dontSetMe} from './utils/shims'; import log from './utils/log'; import type {EventHandler, MouseTouchEvent} from './utils/types'; +import type {Element as ReactElement} from 'react'; // Simple abstraction for dragging events names. const eventsFor = { @@ -55,7 +56,7 @@ export type ControlPosition = {x: number, y: number}; export type DraggableCoreProps = { allowAnyClick: boolean, cancel: string, - children: React.Element, + children: ReactElement, disabled: boolean, enableUserSelectHack: boolean, offsetParent: HTMLElement, diff --git a/package.json b/package.json index 55983c36..64b1d695 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "test-ie": "karma start --browsers=IE", "dev": "make dev", "build": "make clean build", - "lint": "make lint" + "lint": "make lint", + "flow": "flow" }, "typings": "./typings/index.d.ts", "repository": { @@ -77,4 +78,4 @@ "classnames": "^2.2.5", "prop-types": "^15.5.10" } -} \ No newline at end of file +} From 4a75c447f1294fd636e7c2f1056de02fa896ea79 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 31 Aug 2017 15:12:23 -0500 Subject: [PATCH 271/412] release v3.0.3 --- CHANGELOG.md | 5 +++++ bower.json | 2 +- dist/react-draggable.js | 28 ++++++++++++++-------------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 ++-- 7 files changed, 25 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5178adb9..9c5580ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 3.0.3 (Aug 31, 2017) + +- Bugfix: Fix deprecation warnings caused by `import * as React` (Flow best practice). + - See https://github.com/facebook/react/issues/10583 + ### 3.0.2 (Aug 22, 2017) > 3.0.0 and 3.0.1 have been unpublished due to a large logfile making it into the package. diff --git a/bower.json b/bower.json index 43d5e959..c45ff6f6 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.2", + "version": "3.0.3", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 1a95d0e2..9a80e451 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -755,7 +755,7 @@ var _createClass = function () { function defineProperties(target, props) { for var _react = __webpack_require__(6); -var React = _interopRequireWildcard(_react); +var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(7); @@ -777,16 +777,17 @@ var _log2 = _interopRequireDefault(_log); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -// Simple abstraction for dragging events names. /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/ + + +// Simple abstraction for dragging events names. +/*:: import type {Element as ReactElement} from 'react';*/ var eventsFor = { touch: { start: 'touchstart', @@ -835,7 +836,7 @@ var dragEventFor = eventsFor.mouse; /*:: export type DraggableCoreProps = { allowAnyClick: boolean, cancel: string, - children: React.Element, + children: ReactElement, disabled: boolean, enableUserSelectHack: boolean, offsetParent: HTMLElement, @@ -1060,7 +1061,7 @@ var DraggableCore = function (_React$Component) { value: function render() { // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) - return React.cloneElement(React.Children.only(this.props.children), { + return _react2.default.cloneElement(_react2.default.Children.only(this.props.children), { style: (0, _domFns.styleHacks)(this.props.children.props.style), // Note: mouseMove handler is attached to document so it will still function @@ -1074,7 +1075,7 @@ var DraggableCore = function (_React$Component) { }]); return DraggableCore; -}(React.Component); +}(_react2.default.Component); DraggableCore.displayName = 'DraggableCore'; DraggableCore.propTypes = { @@ -1261,7 +1262,7 @@ var _createClass = function () { function defineProperties(target, props) { for var _react = __webpack_require__(6); -var React = _interopRequireWildcard(_react); +var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(7); @@ -1291,8 +1292,6 @@ var _log2 = _interopRequireDefault(_log); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -1303,6 +1302,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" /*:: import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';*/ /*:: import type {DraggableEventHandler} from './utils/types';*/ +/*:: import type {Element as ReactElement} from 'react';*/ /*:: type DraggableState = { dragging: boolean, dragged: boolean, @@ -1478,7 +1478,7 @@ var Draggable = function (_React$Component) { } }, { key: 'render', - value: function render() /*: React.Element*/ { + value: function render() /*: ReactElement*/ { var _classNames; var style = {}, @@ -1519,10 +1519,10 @@ var Draggable = function (_React$Component) { // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) - return React.createElement( + return _react2.default.createElement( _DraggableCore2.default, _extends({}, this.props, { onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop }), - React.cloneElement(React.Children.only(this.props.children), { + _react2.default.cloneElement(_react2.default.Children.only(this.props.children), { className: className, style: _extends({}, this.props.children.props.style, style), transform: svgTransform @@ -1532,7 +1532,7 @@ var Draggable = function (_React$Component) { }]); return Draggable; -}(React.Component); +}(_react2.default.Component); Draggable.displayName = 'Draggable'; Draggable.propTypes = _extends({}, _DraggableCore2.default.propTypes, { diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 4300a1f0..5116b859 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap a62d047c3227730c04a8",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","React","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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S,CAuHZF,Y,gBACF,wBAAcA,Y;AACjBrE,QAAM,M;AACNxB,UAAQ,K;AACRuH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACvJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB8F,YAAU;;kBA/HOsC,S;;;;;;;ACpCrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7Ce8B,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOrJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAO0F,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQrG,OAAO0F,QAAP,CAAgB4D,eAAhB,CAAgCjD,KAA9C;;AAEA,MAAIgD,QAAQhD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAIhM,IAAI,CAAb,EAAgBA,IAAI+O,SAAS9O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI6O,mBAAmBG,IAAnB,EAAyBD,SAAS/O,CAAT,CAAzB,KAAyCgM,KAA7C,EAAoD,OAAO+C,SAAS/O,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS6O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAIvP,IAAI,CAAb,EAAgBA,IAAIqP,IAAIpP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIuP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAIrP,CAAJ,EAAOwP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAIrP,CAAJ,MAAW,GAAf,EAAoB;AACzBuP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAIrP,CAAJ,CAAP;AACD;AACF;AACD,SAAOsP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a62d047c3227730c04a8","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b0180dc8465010e1cf2d",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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E,QAAM,M;AACNxB,UAAQ,K;AACRsH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACtJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB6F,YAAU;;kBA/HOsC,S;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7Ce8B,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOpJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOyF,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQpG,OAAOyF,QAAP,CAAgB4D,eAAhB,CAAgCjD,KAA9C;;AAEA,MAAIgD,QAAQhD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAI/L,IAAI,CAAb,EAAgBA,IAAI8O,SAAS7O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI4O,mBAAmBG,IAAnB,EAAyBD,SAAS9O,CAAT,CAAzB,KAAyC+L,KAA7C,EAAoD,OAAO+C,SAAS9O,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS4O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAItP,IAAI,CAAb,EAAgBA,IAAIoP,IAAInP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIsP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAIpP,CAAJ,EAAOuP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAIpP,CAAJ,MAAW,GAAf,EAAoB;AACzBsP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAIpP,CAAJ,CAAP;AACD;AACF;AACD,SAAOqP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b0180dc8465010e1cf2d","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 70f68d37..20151f93 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1 +1 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react-dom"),require("react")):root.ReactDraggable=factory(root.ReactDOM,root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_4__,__WEBPACK_EXTERNAL_MODULE_6__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=12)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=function(array,callback){for(var i=0,length=array.length;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(18),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(16)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var printWarning=function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}module.exports=warning},function(module,exports,__webpack_require__){"use strict";function cloneBounds(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:cloneBounds(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart),!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);if((0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent),!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,React.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return React.cloneElement(React.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(19))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return React.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),React.cloneElement(React.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(15);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x==1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];return getPropType(propValue)!==expectedType?new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`."):null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function isSymbol(propType,propValue){return"symbol"===propType||("Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol)}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":isSymbol(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){return propValue.constructor&&propValue.constructor.name?propValue.constructor.name:ANONYMOUS}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(18),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(16)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var printWarning=function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}module.exports=warning},function(module,exports,__webpack_require__){"use strict";function cloneBounds(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:cloneBounds(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart),!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);if((0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent),!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_react2.default.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return _react2.default.cloneElement(_react2.default.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(19))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(15);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x==1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];return getPropType(propValue)!==expectedType?new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`."):null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function isSymbol(propType,propValue){return"symbol"===propType||("Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol)}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":isSymbol(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){return propValue.constructor&&propValue.constructor.name?propValue.constructor.name:ANONYMOUS}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: React.Element,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): React.Element {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"]} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b0180dc8465010e1cf2d","../lib/utils/shims.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../node_modules/prop-types/index.js","../node_modules/fbjs/lib/warning.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/utils/log.js","../index.js","../lib/Draggable.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/getPrefix.js","../node_modules/process/browser.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_6__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","findInArray","array","callback","length","apply","isFunction","func","toString","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","DRAGGABLE_DEBUG","undefined","NODE_ENV","condition","b","e","f","error","args","argIndex","replace","framesToPop","matchesSelector","el","selector","matchesSelectorFunc","_shims","method","addClassName","className","classList","add","match","RegExp","removeClassName","remove","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","offsetParentRect","body","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","default","createSVGTransform","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","removeUserSelectStyles","window","getSelection","removeAllRanges","styleHacks","childStyle","arguments","_extends","touchAction","REACT_ELEMENT_TYPE","Symbol","for","$$typeof","warning","printWarning","_len","Array","_key","message","console","indexOf","_len2","_key2","concat","cloneBounds","bounds","right","bottom","findDOMNode","draggable","_reactDom2","getBoundPosition","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","_domFns","marginRight","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","_positionFns","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","_this","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","_log2","onStart","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","isArray","_snapToGrid","_snapToGrid2","_slicedToArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","_react2","Component","cloneElement","Children","only","children","style","displayName","propTypes","_propTypes2","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","onDragStart","dragged","uiData","newState","slackX","slackY","_getBoundPosition","_getBoundPosition2","onDragStop","Boolean","_this$props$position","defaultPosition","isElementSVG","warn","SVGElement","nextProps","_classNames","svgTransform","transformOpts","_props","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","_classnames2","_DraggableCore2","oneOf","oneOfType","shape","invariant","ReactPropTypesSecret","checkPropTypes","isValidElement","throwOnDirectAccess","getIteratorFn","maybeIterable","iteratorFn","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","is","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","secret","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","bind","createPrimitiveTypeChecker","expectedType","propValue","getPropType","getPreciseType","isNode","every","step","iterator","entries","next","done","value","entry","isSymbol","propType","Date","getPostfixForTypeWarning","getClassName","constructor","ReactPropTypes","symbol","any","typeChecker","element","createElementTypeChecker","instanceOf","expectedClass","expectedClassName","createNodeChecker","objectOf","key","expectedValues","JSON","stringify","arrayOfTypeCheckers","checker","shapeTypes","PropTypes","loggedTypeFailures","typeSpecs","values","getStack","typeSpecName","ex","shim","getShim","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","argType","push","hasOwn","join","getPrefix","prop","documentElement","prefixes","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","browserPrefixToStyle","toLowerCase","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","len","run","Item","noop","nextTick","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask"],"mappings":"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","file":"dist/react-draggable.min.js.map","sourceRoot":"dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b0180dc8465010e1cf2d","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"]} \ No newline at end of file diff --git a/package.json b/package.json index 64b1d695..c976e097 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.2", + "version": "3.0.3", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -78,4 +78,4 @@ "classnames": "^2.2.5", "prop-types": "^15.5.10" } -} +} \ No newline at end of file From ecb4e8d566851b22444e414d0635f270a2144d36 Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 19 Sep 2017 03:21:38 +0400 Subject: [PATCH 272/412] Fix errors with flow v0.54 (#286) --- lib/Draggable.js | 5 +++-- lib/DraggableCore.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index 4d11759f..4fd3b93e 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -253,8 +253,9 @@ export default class Draggable extends React.Component Date: Thu, 26 Oct 2017 10:10:04 -0500 Subject: [PATCH 273/412] fix(domFns): try/catch when trying to remove ranges (IE) Fixes #294 --- lib/utils/domFns.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 3ea5beec..861c85ca 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -144,7 +144,11 @@ export function addUserSelectStyles(doc: Document) { export function removeUserSelectStyles(doc: Document) { if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); - window.getSelection().removeAllRanges(); // remove selection caused by scroll + try { + window.getSelection().removeAllRanges(); // remove selection caused by scroll + } catch (e) { + // probably IE + } } export function styleHacks(childStyle: Object = {}): Object { From 1fa94be2a21ecdecae98c7f8b179f2d58f1d84f5 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 27 Nov 2017 12:16:32 -0600 Subject: [PATCH 274/412] chore(dev): Upgrade devDeps --- .eslintrc | 1 + lib/DraggableCore.js | 2 +- package.json | 42 +- yarn.lock | 1331 +++++++++++++++++++++++++----------------- 4 files changed, 810 insertions(+), 566 deletions(-) diff --git a/.eslintrc b/.eslintrc index abb9d95b..b9106d38 100644 --- a/.eslintrc +++ b/.eslintrc @@ -28,6 +28,7 @@ "ReactClass", "$Shape", "$Exact", + "$Keys", "MouseTouchEvent", } } diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 2c37b0e0..758f25fa 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -105,7 +105,7 @@ export default class DraggableCore extends React.Component) { if (process.browser === true && props[propName] && props[propName].nodeType !== 1) { throw new Error('Draggable\'s offsetParent must be a DOM Node.'); } diff --git a/package.json b/package.json index c976e097..b67f6e11 100644 --- a/package.json +++ b/package.json @@ -30,45 +30,45 @@ }, "homepage": "https://github.com/mzabriskie/react-draggable", "devDependencies": { - "@types/react": "^16.0.0", - "@types/react-dom": "^15.5.3", + "@types/react": "^16.0.25", + "@types/react-dom": "^16.0.3", "babel-cli": "^6.26.0", "babel-core": "^6.26.0", - "babel-eslint": "^7.2.3", + "babel-eslint": "^8.0.2", "babel-loader": "^7.1.2", "babel-plugin-espower": "^2.3.2", "babel-plugin-transform-flow-comments": "^6.22.0", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "babel-preset-stage-1": "^6.24.1", - "eslint": "^4.5.0", - "eslint-plugin-react": "^7.2.1", - "flow-bin": "^0.53.1", - "jasmine-core": "^2.7.0", + "eslint": "^4.12.0", + "eslint-plugin-react": "^7.5.1", + "flow-bin": "^0.59.0", + "jasmine-core": "^2.8.0", "json-loader": "^0.5.7", - "karma": "^1.7.0", + "karma": "^1.7.1", "karma-chrome-launcher": "^2.2.0", "karma-cli": "1.0.1", "karma-firefox-launcher": "^1.0.1", "karma-ie-launcher": "^1.0.0", "karma-jasmine": "^1.1.0", "karma-phantomjs-launcher": "^1.0.4", - "karma-phantomjs-shim": "^1.4.0", - "karma-webpack": "^2.0.4", + "karma-phantomjs-shim": "^1.5.0", + "karma-webpack": "^2.0.6", "lodash": "^4.17.4", "open": "0.0.5", - "phantomjs-prebuilt": "^2.1.15", + "phantomjs-prebuilt": "^2.1.16", "power-assert": "^1.4.4", "pre-commit": "^1.2.2", - "react": "^15.6.1", - "react-dom": "^15.6.1", - "react-frame-component": "^1.1.1", + "react": "^16.1.1", + "react-dom": "^16.1.1", + "react-frame-component": "^2.0.0", "semver": "^5.4.1", - "static-server": "^2.0.5", - "typescript": "^2.4.2", - "uglify-js": "^3.0.28", - "webpack": "^3.5.5", - "webpack-dev-server": "^2.7.1" + "static-server": "^3.0.0", + "typescript": "^2.6.1", + "uglify-js": "^3.2.0", + "webpack": "^3.8.1", + "webpack-dev-server": "^2.9.5" }, "precommit": [ "lint", @@ -76,6 +76,6 @@ ], "dependencies": { "classnames": "^2.2.5", - "prop-types": "^15.5.10" + "prop-types": "^15.6.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 143d66fc..a0e5a691 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,27 +2,91 @@ # yarn lockfile v1 -"@types/react-dom@^16.0.0": - version "15.5.4" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-15.5.4.tgz#3f75ba86a2ce9a7d1d9e7d1ee3f186f3a9652d8f" +"@babel/code-frame@7.0.0-beta.32", "@babel/code-frame@^7.0.0-beta.31": + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.32.tgz#04f231b8ec70370df830d9926ce0f5add074ec4c" dependencies: - "@types/react" "*" + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/helper-function-name@7.0.0-beta.32": + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.32.tgz#6161af4419f1b4e3ed2d28c0c79c160e218be1f3" + dependencies: + "@babel/helper-get-function-arity" "7.0.0-beta.32" + "@babel/template" "7.0.0-beta.32" + "@babel/types" "7.0.0-beta.32" + +"@babel/helper-get-function-arity@7.0.0-beta.32": + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.32.tgz#93721a99db3757de575a83bab7c453299abca568" + dependencies: + "@babel/types" "7.0.0-beta.32" + +"@babel/template@7.0.0-beta.32": + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.32.tgz#e1d9fdbd2a7bcf128f2f920744a67dab18072495" + dependencies: + "@babel/code-frame" "7.0.0-beta.32" + "@babel/types" "7.0.0-beta.32" + babylon "7.0.0-beta.32" + lodash "^4.2.0" + +"@babel/traverse@^7.0.0-beta.31": + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.32.tgz#b78b754c6e1af3360626183738e4c7a05951bc99" + dependencies: + "@babel/code-frame" "7.0.0-beta.32" + "@babel/helper-function-name" "7.0.0-beta.32" + "@babel/types" "7.0.0-beta.32" + babylon "7.0.0-beta.32" + debug "^3.0.1" + globals "^10.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +"@babel/types@7.0.0-beta.32", "@babel/types@^7.0.0-beta.31": + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.32.tgz#c317d0ecc89297b80bbcb2f50608e31f6452a5ff" + dependencies: + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^2.0.0" + +"@types/node@*": + version "8.0.53" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.53.tgz#396b35af826fa66aad472c8cb7b8d5e277f4e6d8" -"@types/react@*", "@types/react@^16.0.0": +"@types/react-dom@^16.0.3": version "16.0.3" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.3.tgz#494d5aa71fc071be6eb2a8d3d489da529b25294a" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.0.3.tgz#8accad7eabdab4cca3e1a56f5ccb57de2da0ff64" + dependencies: + "@types/node" "*" + "@types/react" "*" + +"@types/react@*", "@types/react@^16.0.25": + version "16.0.25" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.25.tgz#bf696b83fe480c5e0eff4335ee39ebc95884a1ed" abbrev@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -accepts@1.3.3, accepts@~1.3.3: +accepts@1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" dependencies: mime-types "~2.1.11" negotiator "0.6.1" +accepts@~1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + dependencies: + mime-types "~2.1.16" + negotiator "0.6.1" + acorn-dynamic-import@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" @@ -47,37 +111,33 @@ acorn@^4.0.0, acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" +acorn@^5.0.0, acorn@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" -ajv-keywords@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" - -ajv-keywords@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" +ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" -ajv@^4.7.0, ajv@^4.9.1: +ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^5.1.5, ajv@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" +ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.3, ajv@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.0.tgz#eb2840746e9dc48bd5e063a36e3fd400c5eab5a9" dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" - json-stable-stringify "^1.0.1" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" @@ -87,13 +147,9 @@ align-text@^0.1.1, align-text@^0.1.3: longest "^1.0.1" repeat-string "^1.5.2" -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-escapes@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" ansi-html@0.0.7: version "0.0.7" @@ -133,8 +189,8 @@ anymatch@^1.3.0: normalize-path "^2.0.0" aproba@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" are-we-there-yet@~1.1.2: version "1.1.4" @@ -213,8 +269,8 @@ asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" asn1.js@^4.0.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + version "4.9.2" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -247,8 +303,8 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@^2.1.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: lodash "^4.14.0" @@ -264,7 +320,11 @@ aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" -aws4@^1.2.1: +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" @@ -321,14 +381,14 @@ babel-core@^6.26.0: slash "^1.0.0" source-map "^0.5.6" -babel-eslint@^7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" +babel-eslint@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.0.2.tgz#e44fb9a037d749486071d52d65312f5c20aa7530" dependencies: - babel-code-frame "^6.22.0" - babel-traverse "^6.23.1" - babel-types "^6.23.0" - babylon "^6.17.0" + "@babel/code-frame" "^7.0.0-beta.31" + "@babel/traverse" "^7.0.0-beta.31" + "@babel/types" "^7.0.0-beta.31" + babylon "^7.0.0-beta.31" babel-generator@^6.1.0, babel-generator@^6.26.0: version "6.26.0" @@ -947,7 +1007,7 @@ babel-template@^6.24.1, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: +babel-traverse@^6.24.1, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: @@ -961,7 +1021,7 @@ babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -970,7 +1030,11 @@ babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@^6.1.0, babylon@^6.17.0, babylon@^6.18.0: +babylon@7.0.0-beta.32, babylon@^7.0.0-beta.31: + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.32.tgz#e9033cb077f64d6895f4125968b37dc0a8c3bc6e" + +babylon@^6.1.0, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1011,12 +1075,12 @@ better-assert@~1.0.0: callsite "1.0.0" big.js@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" binary-extensions@^1.0.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" blob@0.0.4: version "0.0.4" @@ -1029,26 +1093,26 @@ block-stream@*: inherits "~2.0.0" bluebird@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -body-parser@^1.16.1: - version "1.17.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.2.tgz#f8892abc8f9e627d42aedafbca66bf5ab99104ee" +body-parser@1.18.2, body-parser@^1.16.1: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" dependencies: - bytes "2.4.0" - content-type "~1.0.2" - debug "2.6.7" - depd "~1.1.0" - http-errors "~1.6.1" - iconv-lite "0.4.15" + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" on-finished "~2.3.0" - qs "6.4.0" - raw-body "~2.2.0" + qs "6.5.1" + raw-body "2.3.2" type-is "~1.6.15" bonjour@^3.5.0: @@ -1068,6 +1132,18 @@ boom@2.x.x: dependencies: hoek "2.x.x" +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + brace-expansion@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" @@ -1094,14 +1170,15 @@ brorand@^1.0.1: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + version "1.1.1" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" dependencies: - buffer-xor "^1.0.2" + buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" - evp_bytestokey "^1.0.0" + evp_bytestokey "^1.0.3" inherits "^2.0.1" + safe-buffer "^5.0.1" browserify-cipher@^1.0.0: version "1.0.0" @@ -1138,17 +1215,17 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" dependencies: - pako "~0.2.0" + pako "~1.0.5" buffer-indexof@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz#f54f647c4f4e25228baa656a2e57e43d5f270982" + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" -buffer-xor@^1.0.2: +buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -1168,13 +1245,9 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" -bytes@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" - -bytes@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" call-matcher@^1.0.0: version "1.0.1" @@ -1247,7 +1320,7 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1258,13 +1331,17 @@ chalk@^1.1.1, chalk@^1.1.3: supports-color "^2.0.0" chalk@^2.0.0, chalk@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" dependencies: ansi-styles "^3.1.0" escape-string-regexp "^1.0.5" supports-color "^4.0.0" +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + chokidar@^1.4.1, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" @@ -1302,8 +1379,8 @@ cli-cursor@^2.1.0: restore-cursor "^2.0.0" cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" cliui@^2.1.0: version "2.1.0" @@ -1330,8 +1407,8 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" color-convert@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" dependencies: color-name "^1.1.1" @@ -1355,9 +1432,9 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.11.0, commander@^2.3.0, commander@~2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" +commander@^2.11.0, commander@^2.3.0, commander@~2.12.1: + version "2.12.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.1.tgz#468635c4168d06145b9323356d1da84d14ac4a7a" commondir@^1.0.1: version "1.0.1" @@ -1379,23 +1456,23 @@ component-inherit@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" -compressible@~2.0.10: - version "2.0.11" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" +compressible@~2.0.11: + version "2.0.12" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66" dependencies: - mime-db ">= 1.29.0 < 2" + mime-db ">= 1.30.0 < 2" compression@^1.5.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d" + version "1.7.1" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db" dependencies: - accepts "~1.3.3" - bytes "2.5.0" - compressible "~2.0.10" - debug "2.6.8" + accepts "~1.3.4" + bytes "3.0.0" + compressible "~2.0.11" + debug "2.6.9" on-headers "~1.0.1" safe-buffer "5.1.1" - vary "~1.1.1" + vary "~1.1.2" concat-map@0.0.1: version "0.0.1" @@ -1410,17 +1487,17 @@ concat-stream@1.6.0, concat-stream@^1.4.7, concat-stream@^1.6.0: typedarray "^0.0.6" connect-history-api-fallback@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + version "1.5.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" connect@^3.6.0: - version "3.6.3" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.3.tgz#f7320d46a25b4be7b483a2236517f24b1e27e301" + version "3.6.5" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.5.tgz#fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da" dependencies: - debug "2.6.8" - finalhandler "1.0.4" - parseurl "~1.3.1" - utils-merge "1.0.0" + debug "2.6.9" + finalhandler "1.0.6" + parseurl "~1.3.2" + utils-merge "1.0.1" console-browserify@^1.1.0: version "1.1.0" @@ -1440,13 +1517,13 @@ content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" -content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" convert-source-map@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" cookie-signature@1.0.6: version "1.0.6" @@ -1461,8 +1538,8 @@ core-js@^1.0.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -1475,7 +1552,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" dependencies: @@ -1495,14 +1572,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" - dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - object-assign "^4.1.1" - cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -1517,9 +1586,15 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + crypto-browserify@^3.11.0: - version "3.11.1" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -1531,6 +1606,7 @@ crypto-browserify@^3.11.0: pbkdf2 "^3.0.3" public-encrypt "^4.0.0" randombytes "^2.0.0" + randomfill "^1.0.3" currently-unhandled@^0.4.1: version "0.4.1" @@ -1570,15 +1646,15 @@ debug@2.3.3: dependencies: ms "0.7.2" -debug@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" +debug@2.6.9, debug@^2.2.0, debug@^2.6.6, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" -debug@2.6.8, debug@^2.2.0, debug@^2.6.6, debug@^2.6.8: - version "2.6.8" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" +debug@^3.0.1, debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" @@ -1636,7 +1712,7 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@1.1.1, depd@~1.1.0, depd@~1.1.1: +depd@1.1.1, depd@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" @@ -1657,6 +1733,10 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + detect-node@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" @@ -1694,12 +1774,11 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -doctrine@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" +doctrine@^2.0.0, doctrine@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.2.tgz#68f96ce8efc56cc42651f1faadb4f175273b0075" dependencies: esutils "^2.0.2" - isarray "^1.0.0" dom-serialize@^2.2.0: version "2.2.1" @@ -1833,11 +1912,11 @@ error-ex@^1.2.0: is-arrayish "^0.2.1" es-abstract@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" + version "1.10.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" dependencies: es-to-primitive "^1.1.1" - function-bind "^1.1.0" + function-bind "^1.1.1" has "^1.0.1" is-callable "^1.1.3" is-regex "^1.0.4" @@ -1850,20 +1929,20 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" -es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.29" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.29.tgz#768eb2dfc4957bcf35fa0568f193ab71ede53fd8" +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.37" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.37.tgz#0ee741d148b80069ba27d020393756af257defc3" dependencies: - es6-iterator "2" - es6-symbol "~3.1" + es6-iterator "~2.0.1" + es6-symbol "~3.1.1" -es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" +es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" dependencies: d "1" - es5-ext "^0.10.14" - es6-symbol "^3.1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" es6-map@^0.1.3: version "0.1.5" @@ -1876,9 +1955,9 @@ es6-map@^0.1.3: es6-symbol "~3.1.1" event-emitter "~0.3.5" -es6-promise@~4.0.3: - version "4.0.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" +es6-promise@^4.0.3: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a" es6-set@~0.1.5: version "0.1.5" @@ -1890,7 +1969,7 @@ es6-set@~0.1.5: es6-symbol "3.1.1" event-emitter "~0.3.5" -es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" dependencies: @@ -1923,13 +2002,14 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-plugin-react@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.2.1.tgz#c2673526ed6571b08c69c5f453d03f5f13e8ddbe" +eslint-plugin-react@^7.5.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.5.1.tgz#52e56e8d80c810de158859ef07b880d2f56ee30b" dependencies: doctrine "^2.0.0" has "^1.0.1" jsx-ast-utils "^2.0.0" + prop-types "^15.6.0" eslint-scope@^3.7.1: version "3.7.1" @@ -1938,32 +2018,32 @@ eslint-scope@^3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.5.0.tgz#bb75d3b8bde97fb5e13efcd539744677feb019c3" +eslint@^4.12.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.12.0.tgz#a7ce78eba8cc8f2443acfbbc870cc31a65135884" dependencies: - ajv "^5.2.0" + ajv "^5.3.0" babel-code-frame "^6.22.0" chalk "^2.1.0" concat-stream "^1.6.0" cross-spawn "^5.1.0" - debug "^2.6.8" - doctrine "^2.0.0" + debug "^3.0.1" + doctrine "^2.0.2" eslint-scope "^3.7.1" - espree "^3.5.0" + espree "^3.5.2" esquery "^1.0.0" estraverse "^4.2.0" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" - globals "^9.17.0" + globals "^11.0.1" ignore "^3.3.3" imurmurhash "^0.1.4" inquirer "^3.0.6" is-resolvable "^1.0.0" js-yaml "^3.9.1" - json-stable-stringify "^1.0.1" + json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" lodash "^4.17.4" minimatch "^3.0.2" @@ -1971,7 +2051,7 @@ eslint@^4.5.0: natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" - pluralize "^4.0.0" + pluralize "^7.0.0" progress "^2.0.0" require-uncached "^1.0.3" semver "^5.3.0" @@ -1989,11 +2069,11 @@ espower-location-detector@^1.0.0: source-map "^0.5.0" xtend "^4.0.0" -espree@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d" +espree@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca" dependencies: - acorn "^5.1.1" + acorn "^5.2.1" acorn-jsx "^3.0.0" esprima@^4.0.0: @@ -2027,9 +2107,9 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -etag@~1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" event-emitter@~0.3.5: version "0.3.5" @@ -2052,11 +2132,12 @@ eventsource@0.1.6: dependencies: original ">=0.0.5" -evp_bytestokey@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" dependencies: - create-hash "^1.1.1" + md5.js "^1.3.4" + safe-buffer "^5.1.1" execa@^0.7.0: version "0.7.0" @@ -2097,50 +2178,52 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -express@^4.13.3: - version "4.15.4" - resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1" +express@^4.16.2: + version "4.16.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" dependencies: - accepts "~1.3.3" + accepts "~1.3.4" array-flatten "1.1.1" + body-parser "1.18.2" content-disposition "0.5.2" - content-type "~1.0.2" + content-type "~1.0.4" cookie "0.3.1" cookie-signature "1.0.6" - debug "2.6.8" + debug "2.6.9" depd "~1.1.1" encodeurl "~1.0.1" escape-html "~1.0.3" - etag "~1.8.0" - finalhandler "~1.0.4" - fresh "0.5.0" + etag "~1.8.1" + finalhandler "1.1.0" + fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" - parseurl "~1.3.1" + parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~1.1.5" - qs "6.5.0" + proxy-addr "~2.0.2" + qs "6.5.1" range-parser "~1.2.0" - send "0.15.4" - serve-static "1.12.4" - setprototypeof "1.0.3" + safe-buffer "5.1.1" + send "0.16.1" + serve-static "1.13.1" + setprototypeof "1.1.0" statuses "~1.3.1" type-is "~1.6.15" - utils-merge "1.0.0" - vary "~1.1.1" + utils-merge "1.0.1" + vary "~1.1.2" -extend@^3.0.0, extend@~3.0.0: +extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" external-editor@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" + version "2.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" dependencies: + chardet "^0.4.0" iconv-lite "^0.4.17" - jschardet "^1.4.2" - tmp "^0.0.31" + tmp "^0.0.33" extglob@^0.3.1: version "0.3.2" @@ -2148,12 +2231,12 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" -extract-zip@~1.6.5: - version "1.6.5" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440" +extract-zip@^1.6.5: + version "1.6.6" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" dependencies: concat-stream "1.6.0" - debug "2.2.0" + debug "2.6.9" mkdirp "0.5.0" yauzl "2.4.1" @@ -2165,6 +2248,10 @@ fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -2181,9 +2268,9 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.9: - version "0.8.14" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c" +fbjs@^0.8.16: + version "0.8.16" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" dependencies: core-js "^1.0.0" isomorphic-fetch "^2.1.1" @@ -2230,15 +2317,27 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -finalhandler@1.0.4, finalhandler@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" +finalhandler@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" dependencies: - debug "2.6.8" + debug "2.6.9" encodeurl "~1.0.1" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.1" + parseurl "~1.3.2" statuses "~1.3.1" unpipe "~1.0.0" @@ -2264,17 +2363,17 @@ find-up@^2.0.0, find-up@^2.1.0: locate-path "^2.0.0" flat-cache@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" dependencies: circular-json "^0.3.1" del "^2.0.2" graceful-fs "^4.1.2" write "^0.2.1" -flow-bin@^0.53.1: - version "0.53.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.53.1.tgz#9b22b63a23c99763ae533ebbab07f88c88c97d84" +flow-bin@^0.59.0: + version "0.59.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.59.0.tgz#8c151ee7f09f1deed9bf0b9d1f2e8ab9d470f1bb" for-in@^1.0.1: version "1.0.2" @@ -2302,13 +2401,21 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" -forwarded@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" +form-data@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" -fresh@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" fs-access@^1.0.0: version "1.0.1" @@ -2316,7 +2423,7 @@ fs-access@^1.0.0: dependencies: null-check "^1.0.0" -fs-extra@~1.0.0: +fs-extra@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" dependencies: @@ -2325,19 +2432,19 @@ fs-extra@~1.0.0: klaw "^1.0.0" fs-readdir-recursive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" dependencies: nan "^2.3.0" - node-pre-gyp "^0.6.36" + node-pre-gyp "^0.6.39" fstream-ignore@^1.0.5: version "1.0.5" @@ -2356,9 +2463,9 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.0.2, function-bind@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" +function-bind@^1.0.2, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" functional-red-black-tree@^1.0.1: version "1.0.1" @@ -2419,7 +2526,15 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^9.17.0, globals@^9.18.0: +globals@^10.0.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-10.4.0.tgz#5c477388b128a9e4c5c5d01c7a2aca68c68b2da7" + +globals@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.0.1.tgz#12a87bb010e5154396acc535e1e43fc753b0e5e8" + +globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" @@ -2456,6 +2571,10 @@ har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + har-validator@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" @@ -2463,6 +2582,13 @@ har-validator@~4.2.1: ajv "^4.9.1" har-schema "^1.0.5" +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + has-ansi@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" @@ -2485,10 +2611,6 @@ has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - has-flag@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" @@ -2509,6 +2631,13 @@ hash-base@^2.0.0: dependencies: inherits "^2.0.1" +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.3" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" @@ -2516,14 +2645,14 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hasha@~2.2.0: +hasha@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" dependencies: is-stream "^1.0.1" pinkie-promise "^2.0.0" -hawk@~3.1.3: +hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -2532,6 +2661,15 @@ hawk@~3.1.3: hoek "2.x.x" sntp "1.x.x" +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -2544,6 +2682,10 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" +hoek@4.x.x: + version "4.2.0" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -2572,7 +2714,7 @@ http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" -http-errors@~1.6.1, http-errors@~1.6.2: +http-errors@1.6.2, http-errors@~1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" dependencies: @@ -2581,6 +2723,10 @@ http-errors@~1.6.1, http-errors@~1.6.2: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" +http-parser-js@>=0.4.0: + version "0.4.9" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1" + http-proxy-middleware@~0.17.4: version "0.17.4" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" @@ -2605,25 +2751,36 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" -iconv-lite@0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" -iconv-lite@^0.4.17, iconv-lite@~0.4.13: - version "0.4.18" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" +iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" ignore@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" + version "3.3.7" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" + +import-local@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8" + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" imurmurhash@^0.1.4: version "0.1.4" @@ -2655,14 +2812,14 @@ inherits@2.0.1: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" inquirer@^3.0.6: - version "3.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.2.tgz#c2aaede1507cc54d826818737742d621bef2e823" + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" dependencies: - ansi-escapes "^2.0.0" + ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" @@ -2677,17 +2834,17 @@ inquirer@^3.0.6: strip-ansi "^4.0.0" through "^2.3.6" -internal-ip@^1.2.0: +internal-ip@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" dependencies: meow "^3.3.0" interpret@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + version "1.0.4" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" -invariant@^2.2.2: +invariant@^2.2.0, invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: @@ -2701,9 +2858,9 @@ ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -ipaddr.js@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" +ipaddr.js@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" is-arrayish@^0.2.1: version "0.2.1" @@ -2716,8 +2873,8 @@ is-binary-path@^1.0.0: binary-extensions "^1.0.0" is-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" is-builtin-module@^1.0.0: version "1.0.0" @@ -2859,6 +3016,10 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -2892,17 +3053,17 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -jasmine-core@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.7.0.tgz#50ff8c4f92d8ef5c0b2c1b846dd263ed85152091" +jasmine-core@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" js-yaml@^3.9.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -2911,10 +3072,6 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jschardet@^1.4.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9" - jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" @@ -2935,6 +3092,10 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" @@ -2973,8 +3134,8 @@ jsprim@^1.2.2: verror "1.10.0" jsx-ast-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.0.tgz#ec06a3d60cf307e5e119dac7bad81e89f096f0f8" + version "2.0.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" dependencies: array-includes "^3.0.3" @@ -3012,23 +3173,23 @@ karma-phantomjs-launcher@^1.0.4: lodash "^4.0.1" phantomjs-prebuilt "^2.1.7" -karma-phantomjs-shim@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/karma-phantomjs-shim/-/karma-phantomjs-shim-1.4.0.tgz#21072f436e07764a425fbbdc15175b537106e7ed" +karma-phantomjs-shim@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/karma-phantomjs-shim/-/karma-phantomjs-shim-1.5.0.tgz#e8db65883480f0dbd184cc961d39c64511742200" -karma-webpack@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.4.tgz#3e2d4f48ba94a878e1c66bb8e1ae6128987a175b" +karma-webpack@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.6.tgz#967918e59750ebe0f40829263435fde7ac81bdb4" dependencies: async "~0.9.0" loader-utils "^0.2.5" lodash "^3.8.0" - source-map "^0.1.41" - webpack-dev-middleware "^1.0.11" + source-map "^0.5.6" + webpack-dev-middleware "^1.12.0" -karma@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.0.tgz#6f7a1a406446fa2e187ec95398698f4cee476269" +karma@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" dependencies: bluebird "^3.3.0" body-parser "^1.16.1" @@ -3058,10 +3219,14 @@ karma@^1.7.0: tmp "0.0.31" useragent "^2.1.12" -kew@~0.7.0: +kew@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" +killable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" + kind-of@^3.0.2: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -3148,7 +3313,7 @@ lodash@^3.8.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: +lodash@^4.0.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3160,8 +3325,8 @@ log4js@^0.6.31: semver "~4.3.3" loglevel@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.4.1.tgz#95b383f91a3c2756fd4ab093667e4309161f2bcd" + version "1.6.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.0.tgz#ae0caa561111498c5ba13723d6fb631d24003934" longest@^1.0.1: version "1.0.1" @@ -3192,15 +3357,22 @@ lru-cache@^4.0.1: yallist "^2.1.2" make-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + version "1.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" dependencies: - pify "^2.3.0" + pify "^3.0.0" map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -3260,29 +3432,33 @@ micromatch@^2.1.5, micromatch@^2.3.11: regex-cache "^0.4.2" miller-rabin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" dependencies: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" +"mime-db@>= 1.30.0 < 2": + version "1.31.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.31.0.tgz#a49cd8f3ebf3ed1a482b60561d9105ad40ca74cb" -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: - version "2.1.16" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" dependencies: - mime-db "~1.29.0" + mime-db "~1.30.0" -mime@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" -mime@^1.2.11, mime@^1.3.4: - version "1.3.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" +mime@^1.2.11, mime@^1.3.4, mime@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" mimic-fn@^1.0.0: version "1.1.0" @@ -3343,8 +3519,8 @@ multicast-dns-service-types@^1.1.0: resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" multicast-dns@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde" + version "6.2.1" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.1.tgz#c5035defa9219d30640558a49298067352098060" dependencies: dns-packet "^1.0.1" thunky "^0.1.0" @@ -3354,8 +3530,8 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" nan@^2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" natural-compare@^1.4.0: version "1.4.0" @@ -3366,8 +3542,8 @@ negotiator@0.6.1: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" node-fetch@^1.0.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7" + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" dependencies: encoding "^0.1.11" is-stream "^1.0.1" @@ -3377,42 +3553,44 @@ node-forge@0.6.33: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" node-libs-browser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" dependencies: assert "^1.1.1" - browserify-zlib "^0.1.4" + browserify-zlib "^0.2.0" buffer "^4.3.0" console-browserify "^1.1.0" constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" events "^1.0.0" - https-browserify "0.0.1" - os-browserify "^0.2.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" path-browserify "0.0.0" - process "^0.11.0" + process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" - readable-stream "^2.0.5" + readable-stream "^2.3.3" stream-browserify "^2.0.1" - stream-http "^2.3.1" - string_decoder "^0.10.25" - timers-browserify "^2.0.2" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" util "^0.10.3" vm-browserify "0.0.4" -node-pre-gyp@^0.6.36: - version "0.6.36" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" mkdirp "^0.5.1" nopt "^4.0.1" npmlog "^4.0.2" rc "^1.1.7" - request "^2.81.0" + request "2.81.0" rimraf "^2.6.1" semver "^5.3.0" tar "^2.2.1" @@ -3463,7 +3641,7 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -oauth-sign@~0.8.1: +oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" @@ -3520,12 +3698,11 @@ open@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" -opn@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" +opn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" + is-wsl "^1.1.0" optimist@^0.6.1: version "0.6.1" @@ -3555,9 +3732,9 @@ original@>=0.0.5: dependencies: url-parse "1.0.x" -os-browserify@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" os-homedir@^1.0.0: version "1.0.2" @@ -3615,12 +3792,12 @@ p-locate@^2.0.0: p-limit "^1.1.0" p-map@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" parse-asn1@^5.0.0: version "5.1.0" @@ -3665,9 +3842,9 @@ parseuri@0.0.5: dependencies: better-assert "~1.0.0" -parseurl@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" path-browserify@0.0.0: version "0.0.0" @@ -3718,8 +3895,8 @@ path-type@^2.0.0: pify "^2.0.0" pbkdf2@^3.0.3: - version "3.0.13" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -3735,21 +3912,25 @@ performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" -phantomjs-prebuilt@^2.1.15, phantomjs-prebuilt@^2.1.7: - version "2.1.15" - resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.15.tgz#20f86e82d3349c505917527745b7a411e08b3903" - dependencies: - es6-promise "~4.0.3" - extract-zip "~1.6.5" - fs-extra "~1.0.0" - hasha "~2.2.0" - kew "~0.7.0" - progress "~1.1.8" - request "~2.81.0" - request-progress "~2.0.1" - which "~1.2.10" - -pify@^2.0.0, pify@^2.3.0: +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: + version "2.1.16" + resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef" + dependencies: + es6-promise "^4.0.3" + extract-zip "^1.6.5" + fs-extra "^1.0.0" + hasha "^2.2.0" + kew "^0.7.0" + progress "^1.1.8" + request "^2.81.0" + request-progress "^2.0.1" + which "^1.2.10" + +pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3773,9 +3954,9 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -pluralize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-4.0.0.tgz#59b708c1c0190a2f692f1c7618c446b052fd1762" +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" portfinder@^1.0.9: version "1.0.13" @@ -3890,44 +4071,45 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" private@^0.1.6, private@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" -process@^0.11.0: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" -progress@~1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" dependencies: asap "~2.0.3" -prop-types@^15.5.10: - version "15.5.10" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" +prop-types@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" dependencies: - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.3.1" + object-assign "^4.1.1" -proxy-addr@~1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" +proxy-addr@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" dependencies: - forwarded "~0.1.0" - ipaddr.js "1.4.0" + forwarded "~0.1.2" + ipaddr.js "1.5.2" prr@~0.0.0: version "0.0.0" @@ -3959,14 +4141,14 @@ qjobs@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" -qs@6.4.0, qs@~6.4.0: +qs@6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" -qs@6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -3990,55 +4172,62 @@ randomatic@^1.1.3: is-number "^3.0.0" kind-of "^4.0.0" -randombytes@^2.0.0, randombytes@^2.0.1: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" dependencies: safe-buffer "^5.1.0" +randomfill@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -raw-body@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" dependencies: - bytes "2.4.0" - iconv-lite "0.4.15" + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" unpipe "1.0.0" rc@^1.1.7: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + version "1.2.2" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" dependencies: deep-extend "~0.4.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^15.6.1: - version "15.6.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" +react-dom@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.1.1.tgz#b2e331b6d752faf1a2d31399969399a41d8d45f8" dependencies: - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" -react-frame-component@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-1.1.1.tgz#05b7f5689a2d373f25baf0c9adb0e59d78103388" +react-frame-component@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-2.0.0.tgz#a39e1fec9b0da6e1295beccf1b659b0f15e6bb98" -react@^15.6.1: - version "15.6.1" - resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df" +react@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.1.1.tgz#d5c4ef795507e3012282dd51261ff9c0e824fe1f" dependencies: - create-react-class "^15.6.0" - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" read-pkg-up@^1.0.1: version "1.0.1" @@ -4070,7 +4259,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9, readable-stream@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -4108,8 +4297,8 @@ redent@^1.0.0: strip-indent "^1.0.1" regenerate@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" regenerator-runtime@^0.10.5: version "0.10.5" @@ -4128,11 +4317,10 @@ regenerator-transform@^0.10.0: private "^0.1.6" regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" dependencies: is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" regexpu-core@^2.0.0: version "2.0.0" @@ -4174,13 +4362,13 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request-progress@~2.0.1: +request-progress@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" dependencies: throttleit "^1.0.0" -request@^2.81.0, request@~2.81.0: +request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -4207,6 +4395,33 @@ request@^2.81.0, request@~2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" +request@^2.81.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4222,17 +4437,27 @@ require-uncached@^1.0.3: caller-path "^0.1.0" resolve-from "^1.0.0" -requires-port@1.0.x, requires-port@1.x.x: +requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolve@^1.1.6: - version "1.4.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + version "1.5.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" dependencies: path-parse "^1.0.5" @@ -4250,8 +4475,8 @@ right-align@^0.1.1: align-text "^0.1.1" rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.0, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" @@ -4278,7 +4503,7 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -4300,44 +4525,44 @@ semver@~4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" -send@0.15.4: - version "0.15.4" - resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9" +send@0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" dependencies: - debug "2.6.8" + debug "2.6.9" depd "~1.1.1" destroy "~1.0.4" encodeurl "~1.0.1" escape-html "~1.0.3" - etag "~1.8.0" - fresh "0.5.0" + etag "~1.8.1" + fresh "0.5.2" http-errors "~1.6.2" - mime "1.3.4" + mime "1.4.1" ms "2.0.0" on-finished "~2.3.0" range-parser "~1.2.0" statuses "~1.3.1" serve-index@^1.7.2: - version "1.9.0" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.0.tgz#d2b280fc560d616ee81b48bf0fa82abed2485ce7" + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" dependencies: - accepts "~1.3.3" + accepts "~1.3.4" batch "0.6.1" - debug "2.6.8" + debug "2.6.9" escape-html "~1.0.3" - http-errors "~1.6.1" - mime-types "~2.1.15" - parseurl "~1.3.1" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" -serve-static@1.12.4: - version "1.12.4" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" +serve-static@1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" dependencies: encodeurl "~1.0.1" escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.15.4" + parseurl "~1.3.2" + send "0.16.1" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -4355,11 +4580,16 @@ setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.8" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + version "2.4.9" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" dependencies: inherits "^2.0.1" + safe-buffer "^5.0.1" shebang-command@^1.2.0: version "1.2.0" @@ -4379,9 +4609,11 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" sntp@1.x.x: version "1.0.9" @@ -4389,6 +4621,12 @@ sntp@1.x.x: dependencies: hoek "2.x.x" +sntp@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + dependencies: + hoek "4.x.x" + socket.io-adapter@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" @@ -4456,21 +4694,19 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" source-map-support@^0.4.15: - version "0.4.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8" + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" -source-map@^0.1.41: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" @@ -4533,16 +4769,20 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -static-server@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/static-server/-/static-server-2.0.5.tgz#a42e4735d04336bf0f588e606e8829760e71141b" +static-server@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/static-server/-/static-server-3.0.0.tgz#50c5adb318bcdf6547f4b36c272e8c53df829030" dependencies: chalk "^0.5.1" commander "^2.3.0" file-size "0.0.5" mime "^1.2.11" -"statuses@>= 1.3.1 < 2", statuses@~1.3.1: +"statuses@>= 1.3.1 < 2": + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +statuses@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" @@ -4553,7 +4793,7 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-http@^2.3.1: +stream-http@^2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" dependencies: @@ -4571,23 +4811,23 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0: +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.0.3: +string_decoder@^1.0.0, string_decoder@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" dependencies: safe-buffer "~5.1.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + stringifier@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" @@ -4596,7 +4836,7 @@ stringifier@^1.3.0: traverse "^0.6.6" type-name "^2.0.1" -stringstream@~0.0.4: +stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -4650,36 +4890,30 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.1: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - supports-color@^4.0.0, supports-color@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" dependencies: has-flag "^2.0.0" table@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435" + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" tapable@^0.2.7: version "0.2.8" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" tar-pack@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" dependencies: debug "^2.2.0" fstream "^1.0.10" @@ -4718,19 +4952,19 @@ time-stamp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" -timers-browserify@^2.0.2: +timers-browserify@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" dependencies: setimmediate "^1.0.4" -tmp@0.0.31, tmp@^0.0.31: +tmp@0.0.31: version "0.0.31" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" dependencies: os-tmpdir "~1.0.1" -tmp@0.0.x: +tmp@0.0.x, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" dependencies: @@ -4748,9 +4982,13 @@ to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" dependencies: punycode "^1.4.1" @@ -4805,13 +5043,13 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@^2.4.2: - version "2.5.1" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.1.tgz#ce7cc93ada3de19475cc9d17e3adea7aee1832aa" +typescript@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.1.tgz#ef39cdea27abac0b500242d6726ab90e0c846631" ua-parser-js@^0.7.9: - version "0.7.14" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca" + version "0.7.17" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" uglify-js@^2.8.29: version "2.8.29" @@ -4822,12 +5060,12 @@ uglify-js@^2.8.29: optionalDependencies: uglify-to-browserify "~1.0.0" -uglify-js@^3.0.28: - version "3.0.28" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.28.tgz#96b8495f0272944787b5843a1679aa326640d5f7" +uglify-js@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.2.0.tgz#cb411ee4ca0e0cadbfe3a4e1a1da97e6fa0d19c1" dependencies: - commander "~2.11.0" - source-map "~0.5.1" + commander "~2.12.1" + source-map "~0.6.1" uglify-to-browserify@~1.0.0: version "1.0.2" @@ -4869,11 +5107,11 @@ url-parse@1.0.x: requires-port "1.0.x" url-parse@^1.1.8: - version "1.1.9" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" + version "1.2.0" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" dependencies: querystringify "~1.0.0" - requires-port "1.0.x" + requires-port "~1.0.0" url@^0.11.0: version "0.11.0" @@ -4903,15 +5141,15 @@ util@0.10.3, util@^0.10.3: dependencies: inherits "2.0.1" -utils-merge@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" uuid@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" -uuid@^3.0.0: +uuid@^3.0.0, uuid@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" @@ -4928,9 +5166,9 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -vary@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" verror@1.10.0: version "1.10.0" @@ -4964,54 +5202,58 @@ wbuf@^1.1.0, wbuf@^1.7.2: dependencies: minimalistic-assert "^1.0.0" -webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.11.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" +webpack-dev-middleware@^1.11.0, webpack-dev-middleware@^1.12.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" dependencies: memory-fs "~0.4.1" - mime "^1.3.4" + mime "^1.5.0" path-is-absolute "^1.0.0" range-parser "^1.0.3" time-stamp "^2.0.0" -webpack-dev-server@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz#21580f5a08cd065c71144cf6f61c345bca59a8b8" +webpack-dev-server@^2.9.5: + version "2.9.5" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.5.tgz#79336fba0087a66ae491f4869f6545775b18daa8" dependencies: ansi-html "0.0.7" + array-includes "^3.0.3" bonjour "^3.5.0" chokidar "^1.6.0" compression "^1.5.2" connect-history-api-fallback "^1.3.0" + debug "^3.1.0" del "^3.0.0" - express "^4.13.3" + express "^4.16.2" html-entities "^1.2.0" http-proxy-middleware "~0.17.4" - internal-ip "^1.2.0" + import-local "^0.1.1" + internal-ip "1.2.0" ip "^1.1.5" + killable "^1.0.0" loglevel "^1.4.1" - opn "4.0.2" + opn "^5.1.0" portfinder "^1.0.9" selfsigned "^1.9.1" serve-index "^1.7.2" sockjs "0.3.18" sockjs-client "1.1.4" spdy "^3.4.1" - strip-ansi "^3.0.0" - supports-color "^3.1.1" + strip-ansi "^3.0.1" + supports-color "^4.2.1" webpack-dev-middleware "^1.11.0" - yargs "^6.0.0" + yargs "^6.6.0" webpack-sources@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: source-list-map "^2.0.0" - source-map "~0.5.3" + source-map "~0.6.1" -webpack@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.5.tgz#3226f09fc8b3e435ff781e7af34f82b68b26996c" +webpack@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" @@ -5037,14 +5279,15 @@ webpack@^3.5.5: yargs "^8.0.2" websocket-driver@>=0.5.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + version "0.7.0" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" dependencies: + http-parser-js ">=0.4.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" whatwg-fetch@>=0.10.0: version "2.0.3" @@ -5058,13 +5301,13 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@1.2.x, which@~1.2.10: +which@1.2.x: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: isexe "^2.0.0" -which@^1.2.1, which@^1.2.9: +which@^1.2.1, which@^1.2.10, which@^1.2.9: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: @@ -5148,7 +5391,7 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" -yargs@^6.0.0: +yargs@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" dependencies: From 1043b9973ead7d7f70314634dcfcb49f9ec510ba Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 27 Nov 2017 12:31:24 -0600 Subject: [PATCH 275/412] test(React16): fix react16 incompat & PhantomJS2 globals --- karma.conf.js | 2 ++ lib/Draggable.js | 8 +++++--- package.json | 2 ++ specs/draggable.spec.jsx | 25 ++++++------------------- specs/main.js | 15 +++++++-------- yarn.lock | 10 +++++++++- 6 files changed, 31 insertions(+), 31 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index 0fe7d29d..3f1a7283 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -21,6 +21,8 @@ module.exports = function(config) { webpack: { module: { + // Suppress power-assert warning + exprContextCritical: false, loaders: [ { test: /\.(?:jsx?)$/, diff --git a/lib/Draggable.js b/lib/Draggable.js index 4fd3b93e..1ca8c650 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -339,8 +339,10 @@ export default class Draggable extends React.Component - {React.cloneElement(React.Children.only(this.props.children), { + {React.cloneElement(children, { className: className, - style: {...this.props.children.props.style, ...style}, + style: {...children.props.style, ...style}, transform: svgTransform })}
diff --git a/package.json b/package.json index b67f6e11..ed5ced8e 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "babel-preset-stage-1": "^6.24.1", + "core-js": "^2.5.1", "eslint": "^4.12.0", "eslint-plugin-react": "^7.5.1", "flow-bin": "^0.59.0", @@ -63,6 +64,7 @@ "react": "^16.1.1", "react-dom": "^16.1.1", "react-frame-component": "^2.0.0", + "react-test-renderer": "^16.1.1", "semver": "^5.4.1", "static-server": "^3.0.0", "typescript": "^2.6.1", diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 34f7c701..90136c06 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -2,6 +2,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react-dom/test-utils'; +import ShallowRenderer from 'react-test-renderer/shallow'; import Draggable, {DraggableCore} from '../index'; import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; @@ -80,7 +81,7 @@ describe('react-draggable', function () { // NOTE: this runs a shallow renderer, which DOES NOT actually render it('should pass handle on to ', function () { drag =
; - const renderer = TestUtils.createRenderer(); + const renderer = new ShallowRenderer(); renderer.render(drag); const output = renderer.getRenderOutput(); @@ -668,29 +669,15 @@ describe('react-draggable', function () { describe('validation', function () { it('should result with invariant when there isn\'t a child', function () { - drag = (); + const renderer = new ShallowRenderer(); - let error = false; - try { - TestUtils.renderIntoDocument(drag); - } catch (e) { - error = true; - } - - assert(error === true); + assert.throws(() => renderer.render()); }); it('should result with invariant if there\'s more than a single child', function () { - drag = (
); - - let error = false; - try { - TestUtils.renderIntoDocument(drag); - } catch (e) { - error = true; - } + const renderer = new ShallowRenderer(); - assert(error === true); + assert.throws(() => renderer.render(
)); }); }); }); diff --git a/specs/main.js b/specs/main.js index c2fcd20b..1e4dcc39 100644 --- a/specs/main.js +++ b/specs/main.js @@ -1,10 +1,9 @@ -// PhantomJS STILL doesn't support bind yet -/*eslint no-extend-native:0*/ -Function.prototype.bind = Function.prototype.bind || function (thisp) { - var fn = this; - return function () { - return fn.apply(thisp, arguments); - }; -}; +// PhantomJS2 doesn't have Map +if (!global.Map) { + require('core-js/es6/map'); +} +if (!global.Set) { + require('core-js/es6/set'); +} require('./draggable.spec.jsx'); diff --git a/yarn.lock b/yarn.lock index a0e5a691..49ae196e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1537,7 +1537,7 @@ core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" @@ -4220,6 +4220,14 @@ react-frame-component@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-2.0.0.tgz#a39e1fec9b0da6e1295beccf1b659b0f15e6bb98" +react-test-renderer@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.1.1.tgz#a05184688d564be799f212449262525d1e350537" + dependencies: + fbjs "^0.8.16" + object-assign "^4.1.1" + prop-types "^15.6.0" + react@^16.1.1: version "16.1.1" resolved "https://registry.yarnpkg.com/react/-/react-16.1.1.tgz#d5c4ef795507e3012282dd51261ff9c0e824fe1f" From 02176eec343a6d0933837e099501828d1f1ac072 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 27 Nov 2017 12:46:56 -0600 Subject: [PATCH 276/412] test(browsers): headless in travis --- .travis.yml | 8 ++++---- karma.conf.js | 13 ++----------- package.json | 1 + yarn.lock | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 60 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index 683bb258..5e9a063b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,10 +4,10 @@ node_js: - "6" - "8" cache: yarn -before_script: - - export DISPLAY=:99.0 - - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1024x768x16" - - sleep 3 # give xvfb some time to start +env: + - MOZ_HEADLESS=1 +addons: + firefox: latest script: - npm run lint - npm run test diff --git a/karma.conf.js b/karma.conf.js index 3f1a7283..e27daffd 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,5 +1,6 @@ var webpack = require('webpack'); process.env.NODE_ENV = 'test'; +process.env.CHROME_BIN = require('puppeteer').executablePath(); module.exports = function(config) { config.set({ @@ -67,19 +68,9 @@ module.exports = function(config) { autoWatch: false, - browsers: ['PhantomJS_custom', 'Firefox', 'HeadlessChrome'], + browsers: ['PhantomJS_custom', 'Firefox', 'ChromeHeadless'], customLaunchers: { - HeadlessChrome: { - base: 'Chrome', - flags: [ - '--no-sandbox', - '--headless', - '--disable-gpu', - // Without a remote debugging port, Google Chrome exits immediately. - '--remote-debugging-port=9222', - ] - }, PhantomJS_custom: { base: 'PhantomJS', options: { diff --git a/package.json b/package.json index ed5ced8e..f064a8c5 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "phantomjs-prebuilt": "^2.1.16", "power-assert": "^1.4.4", "pre-commit": "^1.2.2", + "puppeteer": "^0.13.0", "react": "^16.1.1", "react-dom": "^16.1.1", "react-frame-component": "^2.0.0", diff --git a/yarn.lock b/yarn.lock index 49ae196e..c13c2a0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -119,6 +119,12 @@ after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" +agent-base@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.1.2.tgz#80fa6cde440f4dcf9af2617cf246099b5d99f0c8" + dependencies: + es6-promisify "^5.0.0" + ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" @@ -298,6 +304,10 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -1646,7 +1656,7 @@ debug@2.3.3: dependencies: ms "0.7.2" -debug@2.6.9, debug@^2.2.0, debug@^2.6.6, debug@^2.6.8: +debug@2.6.9, debug@^2.2.0, debug@^2.4.1, debug@^2.6.6, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -1959,6 +1969,12 @@ es6-promise@^4.0.3: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a" +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + dependencies: + es6-promise "^4.0.3" + es6-set@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" @@ -2763,6 +2779,13 @@ https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" +https-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.1.0.tgz#1391bee7fd66aeabc0df2a1fa90f58954f43e443" + dependencies: + agent-base "^4.1.0" + debug "^2.4.1" + iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" @@ -4111,6 +4134,10 @@ proxy-addr@~2.0.2: forwarded "~0.1.2" ipaddr.js "1.5.2" +proxy-from-env@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -4137,6 +4164,19 @@ punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +puppeteer@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-0.13.0.tgz#2e6956205f2c640964c2107f620ae1eef8bde8fd" + dependencies: + debug "^2.6.8" + extract-zip "^1.6.5" + https-proxy-agent "^2.1.0" + mime "^1.3.4" + progress "^2.0.0" + proxy-from-env "^1.0.0" + rimraf "^2.6.1" + ws "^3.0.0" + qjobs@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" @@ -5095,6 +5135,10 @@ ultron@1.0.x: version "1.0.2" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + universal-deep-strict-equal@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" @@ -5367,6 +5411,14 @@ ws@1.1.2: options ">=0.0.5" ultron "1.0.x" +ws@^3.0.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.2.tgz#96c1d08b3fefda1d5c1e33700d3bfaa9be2d5608" + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + wtf-8@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" From b9400c2fa6f539d7d5abaf5577183fda19a25619 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 27 Nov 2017 12:53:14 -0600 Subject: [PATCH 277/412] test(travis): rem node 4, add latest --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5e9a063b..a00ef76e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ language: node_js node_js: - - "4" - "6" - "8" + - "node" # latest cache: yarn env: - MOZ_HEADLESS=1 From 176f69122b0bcf5852effe371ce8e2381b79c12e Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 27 Nov 2017 14:16:01 -0600 Subject: [PATCH 278/412] fix(domFns): Fix "cannot read property 'call' of undefined" Fixes #300, #303 --- lib/utils/domFns.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 861c85ca..680065bb 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -19,8 +19,12 @@ export function matchesSelector(el: Node, selector: string): boolean { }); } + // Might not be found entirely (not an Element?) - in that case, bail // $FlowIgnore: Doesn't think elements are indexable - return el[matchesSelectorFunc].call(el, selector); + if (!isFunction(el[matchesSelectorFunc])) return false; + + // $FlowIgnore: Doesn't think elements are indexable + return el[matchesSelectorFunc](selector); } // Works up the tree to the draggable itself attempting to match selector. From 5f79c5755d7971c261fa7ac4a996f5707e6af09b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 27 Nov 2017 14:27:09 -0600 Subject: [PATCH 279/412] test(iframe): fix flakiness on firefox --- specs/draggable.spec.jsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 90136c06..4a370be6 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -382,9 +382,12 @@ describe('react-draggable', function () { const renderRoot = document.body.appendChild(document.createElement('div')); const frame = ReactDOM.render({ dragElement }, renderRoot); - setTimeout(() => { - const body = ReactDOM.findDOMNode(frame).contentDocument.body; + setTimeout(function checkIframe() { + const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; + if (!iframeDoc) return setTimeout(checkIframe, 50); + const body = iframeDoc.body; const node = body.querySelector('.react-draggable'); + if (!node) return setTimeout(checkIframe, 50); simulateMovementFromTo(node, 0, 0, 100, 100); const style = node.getAttribute('style'); @@ -393,7 +396,7 @@ describe('react-draggable', function () { renderRoot.parentNode.removeChild(renderRoot); done(); - }, 50); + }, 0); }); it('should add and remove transparent selection class to iframe’s body when in an iframe', function (done) { @@ -405,9 +408,11 @@ describe('react-draggable', function () { const renderRoot = document.body.appendChild(document.createElement('div')); const frame = ReactDOM.render({ dragElement }, renderRoot); - setTimeout(() => { + setTimeout(function checkIframe() { const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; + if (!iframeDoc) return setTimeout(checkIframe, 50); const node = iframeDoc.querySelector('.react-draggable'); + if (!node) return setTimeout(checkIframe, 50); assert(!document.body.classList.contains('react-draggable-transparent-selection')); assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); @@ -420,7 +425,7 @@ describe('react-draggable', function () { renderRoot.parentNode.removeChild(renderRoot); done(); - }, 50); + }, 0); }); }); From 2ed5a019913e8a3ff214ef2fcfaed8c0c765b8e8 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 27 Nov 2017 14:31:19 -0600 Subject: [PATCH 280/412] release v3.0.4 --- CHANGELOG.md | 5 + bower.json | 2 +- dist/react-draggable.js | 255 ++++++++++++++++++++++++-------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 +- 7 files changed, 201 insertions(+), 71 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c5580ab..b232b404 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 3.0.4 (Nov 27, 2017) + +- Bugfix: Fix "Cannot call property 'call' of undefined" (matchesSelector) + = Fixes [#300](https://github.com/mzabriskie/react-draggable/issues/300) + ### 3.0.3 (Aug 31, 2017) - Bugfix: Fix deprecation warnings caused by `import * as React` (Flow best practice). diff --git a/bower.json b/bower.json index c45ff6f6..9da84c43 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.3", + "version": "3.0.4", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 9a80e451..eb1df6eb 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -123,11 +123,9 @@ function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: /** * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ @@ -165,11 +163,9 @@ module.exports = emptyFunction; "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -225,12 +221,10 @@ module.exports = invariant; "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ @@ -280,7 +274,7 @@ exports.removeClassName = removeClassName; var _shims = __webpack_require__(0); -var _getPrefix = __webpack_require__(18); +var _getPrefix = __webpack_require__(19); var _getPrefix2 = _interopRequireDefault(_getPrefix); @@ -300,8 +294,12 @@ function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/ { }); } + // Might not be found entirely (not an Element?) - in that case, bail + // $FlowIgnore: Doesn't think elements are indexable + if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; + // $FlowIgnore: Doesn't think elements are indexable - return el[matchesSelectorFunc].call(el, selector); + return el[matchesSelectorFunc](selector); } // Works up the tree to the draggable itself attempting to match selector. @@ -438,7 +436,11 @@ function addUserSelectStyles(doc /*: Document*/) { function removeUserSelectStyles(doc /*: Document*/) { if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); - window.getSelection().removeAllRanges(); // remove selection caused by scroll + try { + window.getSelection().removeAllRanges(); // remove selection caused by scroll + } catch (e) { + // probably IE + } } function styleHacks() /*: Object*/ { @@ -480,12 +482,10 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_6__; /***/ (function(module, exports, __webpack_require__) { /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { @@ -507,7 +507,7 @@ if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { } else { // By explicitly using `prop-types` you are opting into new production behavior. // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(16)(); + module.exports = __webpack_require__(17)(); } @@ -517,12 +517,10 @@ if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { "use strict"; /** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2014-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -1104,8 +1102,8 @@ DraggableCore.propTypes = { * `offsetParent`, if set, uses the passed DOM node to compute drag offsets * instead of using the parent node. */ - offsetParent: function offsetParent(props, propName) { - if (process.browser && props[propName] && props[propName].nodeType !== 1) { + offsetParent: function offsetParent(props /*: DraggableCoreProps*/, propName /*: $Keys*/) { + if (process.browser === true && props[propName] && props[propName].nodeType !== 1) { throw new Error('Draggable\'s offsetParent must be a DOM Node.'); } }, @@ -1205,7 +1203,7 @@ DraggableCore.defaultProps = { onMouseDown: function onMouseDown() {} }; exports.default = DraggableCore; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(19))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) /***/ }), /* 11 */ @@ -1272,7 +1270,7 @@ var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); -var _classnames = __webpack_require__(17); +var _classnames = __webpack_require__(18); var _classnames2 = _interopRequireDefault(_classnames); @@ -1371,15 +1369,16 @@ var Draggable = function (_React$Component) { newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries. - // $FlowBug - // Recalculate slack by noting how much was shaved by the boundPosition handler. - var _getBoundPosition = (0, _positionFns.getBoundPosition)(_this, newState.x, newState.y); + var _getBoundPosition = (0, _positionFns.getBoundPosition)(_this, newState.x, newState.y), + _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2), + newStateX = _getBoundPosition2[0], + newStateY = _getBoundPosition2[1]; - var _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2); + newState.x = newStateX; + newState.y = newStateY; - newState.x = _getBoundPosition2[0]; - newState.y = _getBoundPosition2[1]; + // Recalculate slack by noting how much was shaved by the boundPosition handler. newState.slackX = _this.state.slackX + (_x - newState.x); newState.slackY = _this.state.slackY + (_y - newState.y); @@ -1513,18 +1512,20 @@ var Draggable = function (_React$Component) { defaultClassNameDragging = _props.defaultClassNameDragging, defaultClassNameDragged = _props.defaultClassNameDragged; - // Mark with class while dragging - var className = (0, _classnames2.default)(this.props.children.props.className || '', defaultClassName, (_classNames = {}, _defineProperty(_classNames, defaultClassNameDragging, this.state.dragging), _defineProperty(_classNames, defaultClassNameDragged, this.state.dragged), _classNames)); + var children = _react2.default.Children.only(this.props.children); + + // Mark with class while dragging + var className = (0, _classnames2.default)(children.props.className || '', defaultClassName, (_classNames = {}, _defineProperty(_classNames, defaultClassNameDragging, this.state.dragging), _defineProperty(_classNames, defaultClassNameDragged, this.state.dragged), _classNames)); // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return _react2.default.createElement( _DraggableCore2.default, _extends({}, this.props, { onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop }), - _react2.default.cloneElement(_react2.default.Children.only(this.props.children), { + _react2.default.cloneElement(children, { className: className, - style: _extends({}, this.props.children.props.style, style), + style: _extends({}, children.props.style, style), transform: svgTransform }) ); @@ -1660,12 +1661,10 @@ exports.default = Draggable; "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ @@ -1673,9 +1672,10 @@ exports.default = Draggable; var emptyFunction = __webpack_require__(1); var invariant = __webpack_require__(2); var warning = __webpack_require__(8); +var assign = __webpack_require__(15); var ReactPropTypesSecret = __webpack_require__(3); -var checkPropTypes = __webpack_require__(15); +var checkPropTypes = __webpack_require__(16); module.exports = function(isValidElement, throwOnDirectAccess) { /* global Symbol */ @@ -1771,7 +1771,8 @@ module.exports = function(isValidElement, throwOnDirectAccess) { objectOf: createObjectOfTypeChecker, oneOf: createEnumTypeChecker, oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, }; /** @@ -1986,7 +1987,7 @@ module.exports = function(isValidElement, throwOnDirectAccess) { if (typeof checker !== 'function') { warning( false, - 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received %s at index %s.', getPostfixForTypeWarning(checker), i @@ -2040,6 +2041,36 @@ module.exports = function(isValidElement, throwOnDirectAccess) { return createChainableTypeChecker(validate); } + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + function isNode(propValue) { switch (typeof propValue) { case 'number': @@ -2177,14 +2208,109 @@ module.exports = function(isValidElement, throwOnDirectAccess) { /* 15 */ /***/ (function(module, exports, __webpack_require__) { +"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + + +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ @@ -2218,7 +2344,7 @@ function checkPropTypes(typeSpecs, values, location, componentName, getStack) { try { // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. - invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); + invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]); error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); } catch (ex) { error = ex; @@ -2242,17 +2368,15 @@ module.exports = checkPropTypes; /***/ }), -/* 16 */ +/* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ @@ -2297,7 +2421,8 @@ module.exports = function() { objectOf: getShim, oneOf: getShim, oneOfType: getShim, - shape: getShim + shape: getShim, + exact: getShim }; ReactPropTypes.checkPropTypes = emptyFunction; @@ -2308,7 +2433,7 @@ module.exports = function() { /***/ }), -/* 17 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -2363,7 +2488,7 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! /***/ }), -/* 18 */ +/* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2425,7 +2550,7 @@ function kebabToTitleCase(str /*: string*/) /*: string*/ { exports.default = getPrefix(); /***/ }), -/* 19 */ +/* 20 */ /***/ (function(module, exports) { // shim for using process in browser diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 5116b859..aecfca25 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap b0180dc8465010e1cf2d",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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E,QAAM,M;AACNxB,UAAQ,K;AACRsH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACtJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB6F,YAAU;;kBA/HOsC,S;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7Ce8B,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOpJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOyF,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQpG,OAAOyF,QAAP,CAAgB4D,eAAhB,CAAgCjD,KAA9C;;AAEA,MAAIgD,QAAQhD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAI/L,IAAI,CAAb,EAAgBA,IAAI8O,SAAS7O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI4O,mBAAmBG,IAAnB,EAAyBD,SAAS9O,CAAT,CAAzB,KAAyC+L,KAA7C,EAAoD,OAAO+C,SAAS9O,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS4O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAItP,IAAI,CAAb,EAAgBA,IAAIoP,IAAInP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIsP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAIpP,CAAJ,EAAOuP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAIpP,CAAJ,MAAW,GAAf,EAAoB;AACzBsP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAIpP,CAAJ,CAAP;AACD;AACF;AACD,SAAOqP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b0180dc8465010e1cf2d","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap ff5ce0244e34370c1108",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/object-assign/index.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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AhB,C;;AAKV;;;AAGAxG,6B;AACA+F,yB;AACAW;;AApHiBG,S,CAuHZF,Y,gBACF,wBAAcA,Y;AACjBpE,QAAM,M;AACNxB,UAAQ,K;AACRwH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACxJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB6F,YAAU;;kBA/HOsC,S;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC7hBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7CegC,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOtJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOyF,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQpG,OAAOyF,QAAP,CAAgB8D,eAAhB,CAAgCnD,KAA9C;;AAEA,MAAIkD,QAAQlD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAI/L,IAAI,CAAb,EAAgBA,IAAIgP,SAAS/O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI8O,mBAAmBG,IAAnB,EAAyBD,SAAShP,CAAT,CAAzB,KAAyC+L,KAA7C,EAAoD,OAAOiD,SAAShP,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS8O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAIxP,IAAI,CAAb,EAAgBA,IAAIsP,IAAIrP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIwP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAItP,CAAJ,EAAOyP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAItP,CAAJ,MAAW,GAAf,EAAoB;AACzBwP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAItP,CAAJ,CAAP;AACD;AACF;AACD,SAAOuP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ff5ce0244e34370c1108","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n try {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (process.browser === true && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 16\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 17\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 18\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 20\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 20151f93..ff16068a 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1 +1 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react-dom"),require("react")):root.ReactDraggable=factory(root.ReactDOM,root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_4__,__WEBPACK_EXTERNAL_MODULE_6__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=12)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=function(array,callback){for(var i=0,length=array.length;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(18),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(16)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var printWarning=function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}};warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];printWarning.apply(void 0,[format].concat(args))}}}module.exports=warning},function(module,exports,__webpack_require__){"use strict";function cloneBounds(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:cloneBounds(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return sliceIterator(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart),!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);if((0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent),!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(DraggableCore,_react2.default.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return _react2.default.cloneElement(_react2.default.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(19))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,className=(0,_classnames2.default)(this.props.children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(_react2.default.Children.only(this.props.children),{className:className,style:_extends({},this.props.children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(15);module.exports=function(isValidElement,throwOnDirectAccess){function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}function is(x,y){return x===y?0!==x||1/x==1/y:x!==x&&y!==y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];return getPropType(propValue)!==expectedType?new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`."):null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function isSymbol(propType,propValue){return"symbol"===propType||("Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol)}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":isSymbol(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){return propValue.constructor&&propValue.constructor.name?propValue.constructor.name:ANONYMOUS}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(19),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(17)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];(function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}}).apply(void 0,[format].concat(args))}}}module.exports=warning},function(module,exports,__webpack_require__){"use strict";function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:function(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return function(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart);!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent);if(!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(DraggableCore,_react2.default.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return _react2.default.cloneElement(_react2.default.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(!0===process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(20))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,children=_react2.default.Children.only(this.props.children),className=(0,_classnames2.default)(children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(children,{className:className,style:_extends({},children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),assign=__webpack_require__(15),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(16);module.exports=function(isValidElement,throwOnDirectAccess){function is(x,y){return x===y?0!==x||1/x==1/y:x!=x&&y!=y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];if(getPropType(propValue)!==expectedType)return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`.");return null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=function(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":function(propType,propValue){return"symbol"===propType||"Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol}(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc].call(el, selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props, propName) {\n if (process.browser && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n // $FlowBug\n [newState.x, newState.y] = getBoundPosition(this, newState.x, newState.y);\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n // Mark with class while dragging\n const className = classNames((this.props.children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(React.Children.only(this.props.children), {\n className: className,\n style: {...this.props.children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 17\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 19\n// module chunks = 0"]} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap ff5ce0244e34370c1108","../lib/utils/shims.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../node_modules/prop-types/index.js","../node_modules/fbjs/lib/warning.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/utils/log.js","../index.js","../lib/Draggable.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/object-assign/index.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/getPrefix.js","../node_modules/process/browser.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_6__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","findInArray","array","callback","length","apply","isFunction","func","toString","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","DRAGGABLE_DEBUG","undefined","NODE_ENV","condition","b","e","f","error","args","argIndex","replace","framesToPop","matchesSelector","el","selector","matchesSelectorFunc","_shims","method","addClassName","className","classList","add","match","RegExp","removeClassName","remove","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","offsetParentRect","body","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","default","createSVGTransform","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","removeUserSelectStyles","window","getSelection","removeAllRanges","styleHacks","childStyle","arguments","_extends","touchAction","REACT_ELEMENT_TYPE","Symbol","for","$$typeof","warning","indexOf","_len2","Array","_key2","_len","_key","message","console","concat","findDOMNode","draggable","_reactDom2","getBoundPosition","bounds","right","bottom","cloneBounds","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","_domFns","marginRight","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","_positionFns","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","_this","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","_log2","onStart","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","isArray","_snapToGrid","_snapToGrid2","_slicedToArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","_react2","Component","cloneElement","Children","only","children","style","displayName","propTypes","_propTypes2","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","onDragStart","dragged","uiData","newState","slackX","slackY","_getBoundPosition","_getBoundPosition2","newStateX","newStateY","onDragStop","Boolean","_this$props$position","defaultPosition","isElementSVG","warn","SVGElement","nextProps","_classNames","svgTransform","transformOpts","_props","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","_classnames2","_DraggableCore2","oneOf","oneOfType","shape","invariant","assign","ReactPropTypesSecret","checkPropTypes","isValidElement","throwOnDirectAccess","is","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","secret","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","bind","createPrimitiveTypeChecker","expectedType","propValue","getPropType","getPreciseType","isNode","every","iteratorFn","maybeIterable","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","step","iterator","entries","next","done","value","entry","propType","isSymbol","Date","ReactPropTypes","symbol","any","typeChecker","element","instanceOf","expectedClass","expectedClassName","constructor","getClassName","objectOf","key","expectedValues","JSON","stringify","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","shapeTypes","exact","allKeys","keys","PropTypes","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","shouldUseNative","source","from","symbols","to","val","TypeError","toObject","loggedTypeFailures","typeSpecs","values","getStack","typeSpecName","ex","shim","getShim","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","argType","push","hasOwn","getPrefix","prop","documentElement","prefixes","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","browserPrefixToStyle","toLowerCase","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","len","run","marker","cachedClearTimeout","clearTimeout","runClearTimeout","Item","noop","nextTick","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask"],"mappings":"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","file":"dist/react-draggable.min.js.map","sourceRoot":"dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ff5ce0244e34370c1108","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n try {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (process.browser === true && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 16\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 17\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 18\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 20\n// module chunks = 0"]} \ No newline at end of file diff --git a/package.json b/package.json index f064a8c5..b7d0b548 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.3", + "version": "3.0.4", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -81,4 +81,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} +} \ No newline at end of file From 1d8448d8b1edec499867ab5137ddc1140e75e3f7 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 12 Jan 2018 10:35:11 -0600 Subject: [PATCH 281/412] fix(domFns): don't crash if no document (jsdom/jest) --- lib/utils/domFns.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 680065bb..56f50efc 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -133,7 +133,8 @@ export function getTouchIdentifier(e: MouseTouchEvent): ?number { // Useful for preventing blue highlights all over everything when dragging. // Note we're passing `document` b/c we could be iframed -export function addUserSelectStyles(doc: Document) { +export function addUserSelectStyles(doc: ?Document) { + if (!doc) return; let styleEl = doc.getElementById('react-draggable-style-el'); if (!styleEl) { styleEl = doc.createElement('style'); @@ -146,9 +147,9 @@ export function addUserSelectStyles(doc: Document) { if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); } -export function removeUserSelectStyles(doc: Document) { - if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); +export function removeUserSelectStyles(doc: ?Document) { try { + if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); window.getSelection().removeAllRanges(); // remove selection caused by scroll } catch (e) { // probably IE From aa70047ea3c35d0fa0bfd48944583ea780e91cfc Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 12 Jan 2018 10:36:42 -0600 Subject: [PATCH 282/412] release v3.0.5 --- CHANGELOG.md | 4 ++++ bower.json | 2 +- dist/react-draggable.js | 7 ++++--- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b232b404..5ff04f55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 3.0.5 (Jan 11, 2017) + +- Bugfix: Fix crash in test environments during removeUserSelectStyles(). + ### 3.0.4 (Nov 27, 2017) - Bugfix: Fix "Cannot call property 'call' of undefined" (matchesSelector) diff --git a/bower.json b/bower.json index 9da84c43..39a8d2b5 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.4", + "version": "3.0.5", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index eb1df6eb..750aaa8f 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -421,7 +421,8 @@ function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/ { // Useful for preventing blue highlights all over everything when dragging. // Note we're passing `document` b/c we could be iframed -function addUserSelectStyles(doc /*: Document*/) { +function addUserSelectStyles(doc /*: ?Document*/) { + if (!doc) return; var styleEl = doc.getElementById('react-draggable-style-el'); if (!styleEl) { styleEl = doc.createElement('style'); @@ -434,9 +435,9 @@ function addUserSelectStyles(doc /*: Document*/) { if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); } -function removeUserSelectStyles(doc /*: Document*/) { - if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); +function removeUserSelectStyles(doc /*: ?Document*/) { try { + if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); window.getSelection().removeAllRanges(); // remove selection caused by scroll } catch (e) { // probably IE diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index aecfca25..17d8391f 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap ff5ce0244e34370c1108",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/object-assign/index.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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AhB,C;;AAKV;;;AAGAxG,6B;AACA+F,yB;AACAW;;AApHiBG,S,CAuHZF,Y,gBACF,wBAAcA,Y;AACjBpE,QAAM,M;AACNxB,UAAQ,K;AACRwH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACxJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB6F,YAAU;;kBA/HOsC,S;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC7hBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7CegC,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOtJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOyF,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQpG,OAAOyF,QAAP,CAAgB8D,eAAhB,CAAgCnD,KAA9C;;AAEA,MAAIkD,QAAQlD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAI/L,IAAI,CAAb,EAAgBA,IAAIgP,SAAS/O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI8O,mBAAmBG,IAAnB,EAAyBD,SAAShP,CAAT,CAAzB,KAAyC+L,KAA7C,EAAoD,OAAOiD,SAAShP,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS8O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAIxP,IAAI,CAAb,EAAgBA,IAAIsP,IAAIrP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIwP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAItP,CAAJ,EAAOyP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAItP,CAAJ,MAAW,GAAf,EAAoB;AACzBwP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAItP,CAAJ,CAAP;AACD;AACF;AACD,SAAOuP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ff5ce0244e34370c1108","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n try {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (process.browser === true && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 16\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 17\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 18\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 20\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 33f74c03cddcdadf8186",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/object-assign/index.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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,MADW;AAExB9H,OAAG,oBAAU8H;AAFW,GAAhB,C;;AAKV;;;AAGAxG,6B;AACA+F,yB;AACAW;;AApHiBG,S,CAuHZF,Y,gBACF,wBAAcA,Y;AACjBpE,QAAM,M;AACNxB,UAAQ,K;AACRwH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACxJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB6F,YAAU;;kBA/HOsC,S;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC7hBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7CegC,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOtJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOyF,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQpG,OAAOyF,QAAP,CAAgB8D,eAAhB,CAAgCnD,KAA9C;;AAEA,MAAIkD,QAAQlD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAI/L,IAAI,CAAb,EAAgBA,IAAIgP,SAAS/O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI8O,mBAAmBG,IAAnB,EAAyBD,SAAShP,CAAT,CAAzB,KAAyC+L,KAA7C,EAAoD,OAAOiD,SAAShP,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS8O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAIxP,IAAI,CAAb,EAAgBA,IAAIsP,IAAIrP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIwP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAItP,CAAJ,EAAOyP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAItP,CAAJ,MAAW,GAAf,EAAoB;AACzBwP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAItP,CAAJ,CAAP;AACD;AACF;AACD,SAAOuP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 33f74c03cddcdadf8186","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (process.browser === true && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 16\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 17\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 18\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 20\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index ff16068a..7e8b9bac 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1 +1 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react-dom"),require("react")):root.ReactDraggable=factory(root.ReactDOM,root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_4__,__WEBPACK_EXTERNAL_MODULE_6__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=12)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=function(array,callback){for(var i=0,length=array.length;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(19),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(17)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];(function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}}).apply(void 0,[format].concat(args))}}}module.exports=warning},function(module,exports,__webpack_require__){"use strict";function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:function(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return function(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart);!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent);if(!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(DraggableCore,_react2.default.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return _react2.default.cloneElement(_react2.default.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(!0===process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(20))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,children=_react2.default.Children.only(this.props.children),className=(0,_classnames2.default)(children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(children,{className:className,style:_extends({},children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),assign=__webpack_require__(15),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(16);module.exports=function(isValidElement,throwOnDirectAccess){function is(x,y){return x===y?0!==x||1/x==1/y:x!=x&&y!=y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];if(getPropType(propValue)!==expectedType)return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`.");return null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=function(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":function(propType,propValue){return"symbol"===propType||"Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol}(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(19),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(17)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];(function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}}).apply(void 0,[format].concat(args))}}}module.exports=warning},function(module,exports,__webpack_require__){"use strict";function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:function(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return function(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart);!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent);if(!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(DraggableCore,_react2.default.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return _react2.default.cloneElement(_react2.default.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(!0===process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(20))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,children=_react2.default.Children.only(this.props.children),className=(0,_classnames2.default)(children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(children,{className:className,style:_extends({},children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),assign=__webpack_require__(15),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(16);module.exports=function(isValidElement,throwOnDirectAccess){function is(x,y){return x===y?0!==x||1/x==1/y:x!=x&&y!=y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];if(getPropType(propValue)!==expectedType)return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`.");return null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=function(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":function(propType,propValue){return"symbol"===propType||"Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol}(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: Document) {\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: Document) {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n try {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (process.browser === true && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 16\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 17\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 18\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 20\n// module chunks = 0"]} \ No newline at end of file +{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 33f74c03cddcdadf8186","../lib/utils/shims.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../node_modules/prop-types/index.js","../node_modules/fbjs/lib/warning.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/utils/log.js","../index.js","../lib/Draggable.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/object-assign/index.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/getPrefix.js","../node_modules/process/browser.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_6__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","findInArray","array","callback","length","apply","isFunction","func","toString","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","DRAGGABLE_DEBUG","undefined","NODE_ENV","condition","b","e","f","error","args","argIndex","replace","framesToPop","matchesSelector","el","selector","matchesSelectorFunc","_shims","method","addClassName","className","classList","add","match","RegExp","removeClassName","remove","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","offsetParentRect","body","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","default","createSVGTransform","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","removeUserSelectStyles","window","getSelection","removeAllRanges","styleHacks","childStyle","arguments","_extends","touchAction","REACT_ELEMENT_TYPE","Symbol","for","$$typeof","warning","indexOf","_len2","Array","_key2","_len","_key","message","console","concat","findDOMNode","draggable","_reactDom2","getBoundPosition","bounds","right","bottom","cloneBounds","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","_domFns","marginRight","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","_positionFns","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","_this","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","_log2","onStart","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","isArray","_snapToGrid","_snapToGrid2","_slicedToArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","_react2","Component","cloneElement","Children","only","children","style","displayName","propTypes","_propTypes2","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","onDragStart","dragged","uiData","newState","slackX","slackY","_getBoundPosition","_getBoundPosition2","newStateX","newStateY","onDragStop","Boolean","_this$props$position","defaultPosition","isElementSVG","warn","SVGElement","nextProps","_classNames","svgTransform","transformOpts","_props","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","_classnames2","_DraggableCore2","oneOf","oneOfType","shape","invariant","assign","ReactPropTypesSecret","checkPropTypes","isValidElement","throwOnDirectAccess","is","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","secret","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","bind","createPrimitiveTypeChecker","expectedType","propValue","getPropType","getPreciseType","isNode","every","iteratorFn","maybeIterable","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","step","iterator","entries","next","done","value","entry","propType","isSymbol","Date","ReactPropTypes","symbol","any","typeChecker","element","instanceOf","expectedClass","expectedClassName","constructor","getClassName","objectOf","key","expectedValues","JSON","stringify","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","shapeTypes","exact","allKeys","keys","PropTypes","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","shouldUseNative","source","from","symbols","to","val","TypeError","toObject","loggedTypeFailures","typeSpecs","values","getStack","typeSpecName","ex","shim","getShim","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","argType","push","hasOwn","getPrefix","prop","documentElement","prefixes","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","browserPrefixToStyle","toLowerCase","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","len","run","marker","cachedClearTimeout","clearTimeout","runClearTimeout","Item","noop","nextTick","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask"],"mappings":"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","file":"dist/react-draggable.min.js.map","sourceRoot":"dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 33f74c03cddcdadf8186","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (process.browser === true && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 16\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 17\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 18\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 20\n// module chunks = 0"]} \ No newline at end of file diff --git a/package.json b/package.json index b7d0b548..dcf725b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.4", + "version": "3.0.5", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 76d1feba375e26a145a174301b11bb3f58162cf7 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 30 Mar 2018 20:25:59 +0800 Subject: [PATCH 283/412] fix(webpack): fix env in build. Fixes #325 --- webpack.config.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index 3d32576a..935c70a9 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -37,10 +37,10 @@ module.exports = { extensions: ['.js'] }, plugins: [ - new webpack.DefinePlugin({ - 'process.env': { - DRAGGABLE_DEBUG: process.env.DRAGGABLE_DEBUG - } + new webpack.EnvironmentPlugin({ + // Default values + DRAGGABLE_DEBUG: false, + NODE_ENV: 'production' }), // Scope hoisting new webpack.optimize.ModuleConcatenationPlugin(), From 912f837467ec4a7dda8fcdd330053c1c9d770ae6 Mon Sep 17 00:00:00 2001 From: Bogdan Chadkin Date: Sat, 31 Mar 2018 11:56:48 +0300 Subject: [PATCH 284/412] Build umd and min bundles with rollup (#327) * Build umd and min bundles with rollup * Disable debug log * Add size snapshot for production umd --- .babelrc | 4 +- .size-snapshot.json | 12 ++ Makefile | 11 +- lib/umd.js | 11 ++ package.json | 14 +- rollup.config.js | 61 +++++++ yarn.lock | 399 ++++++++++++++++++++++++++++++++++++-------- 7 files changed, 425 insertions(+), 87 deletions(-) create mode 100644 .size-snapshot.json create mode 100644 lib/umd.js create mode 100644 rollup.config.js diff --git a/.babelrc b/.babelrc index 19860a65..1dc3e280 100644 --- a/.babelrc +++ b/.babelrc @@ -1,7 +1,7 @@ { "presets": [ - "es2015", - "stage-1", + ["env", { "modules": false }], + "stage-2", "react" ], "plugins": [ diff --git a/.size-snapshot.json b/.size-snapshot.json new file mode 100644 index 00000000..012ab86d --- /dev/null +++ b/.size-snapshot.json @@ -0,0 +1,12 @@ +{ + "dist/react-draggable.js": { + "bundled": 75241, + "minified": 22786, + "gzipped": 7678 + }, + "dist/react-draggable.min.js": { + "bundled": 51426, + "minified": 15772, + "gzipped": 5609 + } +} diff --git a/Makefile b/Makefile index ff4a105e..ee571ba6 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,6 @@ # Thanks @andreypopp export BIN := $(shell npm bin) -export NODE_ENV = test DIST = dist LIB = $(DIST)/react-draggable.js MIN = $(DIST)/react-draggable.min.js @@ -23,17 +22,11 @@ build: $(LIB) $(MIN) install link: @npm $@ -dist/%.min.js: $(LIB) $(BIN) - $(BIN)/uglifyjs $< \ - --output $@ \ - --source-map "filename=$@.map,root=$(basename $<.map),content=$<.map" \ - --compress - dist/%.js: $(BIN) - @$(BIN)/webpack --devtool source-map + @$(BIN)/rollup -c test: $(BIN) - @$(BIN)/karma start --single-run + @NODE_ENV=test $(BIN)/karma start --single-run dev: $(BIN) script/build-watch diff --git a/lib/umd.js b/lib/umd.js new file mode 100644 index 00000000..f4b35186 --- /dev/null +++ b/lib/umd.js @@ -0,0 +1,11 @@ +import Draggable from './Draggable'; +import DraggableCore from './DraggableCore'; + +// Previous versions of this lib exported as the root export. As to not break +// them, or TypeScript, we export *both* as the root and as 'default'. +// See https://github.com/mzabriskie/react-draggable/pull/254 +// and https://github.com/mzabriskie/react-draggable/issues/266 +Draggable.default = Draggable; +Draggable.DraggableCore = DraggableCore; + +export default Draggable; diff --git a/package.json b/package.json index dcf725b5..4ba052fd 100644 --- a/package.json +++ b/package.json @@ -37,10 +37,11 @@ "babel-eslint": "^8.0.2", "babel-loader": "^7.1.2", "babel-plugin-espower": "^2.3.2", + "babel-plugin-external-helpers": "^6.22.0", "babel-plugin-transform-flow-comments": "^6.22.0", - "babel-preset-es2015": "^6.24.1", + "babel-preset-env": "^1.6.1", "babel-preset-react": "^6.24.1", - "babel-preset-stage-1": "^6.24.1", + "babel-preset-stage-2": "^6.24.1", "core-js": "^2.5.1", "eslint": "^4.12.0", "eslint-plugin-react": "^7.5.1", @@ -66,6 +67,13 @@ "react-dom": "^16.1.1", "react-frame-component": "^2.0.0", "react-test-renderer": "^16.1.1", + "rollup": "^0.57.1", + "rollup-plugin-babel": "^3.0.3", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-replace": "^2.0.0", + "rollup-plugin-size-snapshot": "^0.2.1", + "rollup-plugin-uglify": "^3.0.0", "semver": "^5.4.1", "static-server": "^3.0.0", "typescript": "^2.6.1", @@ -81,4 +89,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} \ No newline at end of file +} diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 00000000..c2347210 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,61 @@ +import nodeResolve from "rollup-plugin-node-resolve"; +import commonjs from "rollup-plugin-commonjs"; +import babel from "rollup-plugin-babel"; +import replace from "rollup-plugin-replace"; +import uglify from "rollup-plugin-uglify"; +import { sizeSnapshot } from "rollup-plugin-size-snapshot"; + +const input = "./lib/umd.js"; + +export default [ + { + input, + output: { + file: "dist/react-draggable.js", + format: "umd", + sourcemap: true, + name: "ReactDraggable", + globals: { + react: "React", + "react-dom": "ReactDOM" + } + }, + external: ["react", "react-dom"], + plugins: [ + nodeResolve(), + commonjs({ include: "node_modules/**" }), + babel({ exclude: "node_modules/**", plugins: ["external-helpers"] }), + replace({ + "process.env.DRAGGABLE_DEBUG": "false", + "process.env.NODE_ENV": JSON.stringify("development") + }), + sizeSnapshot() + ] + }, + + { + input, + output: { + file: "dist/react-draggable.min.js", + format: "umd", + sourcemap: true, + name: "ReactDraggable", + globals: { + react: "React", + "react-dom": "ReactDOM" + } + }, + external: ["react", "react-dom"], + plugins: [ + nodeResolve(), + commonjs({ include: "node_modules/**" }), + babel({ exclude: "node_modules/**", plugins: ["external-helpers"] }), + replace({ + "process.env.DRAGGABLE_DEBUG": "false", + "process.env.NODE_ENV": JSON.stringify("production") + }), + sizeSnapshot(), + uglify() + ] + } +]; diff --git a/yarn.lock b/yarn.lock index c13c2a0d..4549fd1a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -54,6 +54,16 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" +"@types/acorn@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.3.tgz#d1f3e738dde52536f9aad3d3380d14e448820afd" + dependencies: + "@types/estree" "*" + +"@types/estree@*", "@types/estree@0.0.38": + version "0.0.38" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2" + "@types/node@*": version "8.0.53" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.53.tgz#396b35af826fa66aad472c8cb7b8d5e277f4e6d8" @@ -93,6 +103,12 @@ acorn-dynamic-import@^2.0.0: dependencies: acorn "^4.0.3" +acorn-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + dependencies: + acorn "^5.0.0" + acorn-es7-plugin@^1.0.12: version "1.1.7" resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" @@ -115,6 +131,10 @@ acorn@^5.0.0, acorn@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" +acorn@^5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" + after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" @@ -187,6 +207,12 @@ ansi-styles@^3.1.0: dependencies: color-convert "^1.9.0" +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + anymatch@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" @@ -571,6 +597,12 @@ babel-plugin-espower@^2.3.2: espurify "^1.6.0" estraverse "^4.1.1" +babel-plugin-external-helpers@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" + dependencies: + babel-runtime "^6.22.0" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -579,10 +611,6 @@ babel-plugin-syntax-async-generators@^6.5.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" -babel-plugin-syntax-class-constructor-call@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" - babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" @@ -599,10 +627,6 @@ babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" -babel-plugin-syntax-export-extensions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" - babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" @@ -627,7 +651,7 @@ babel-plugin-transform-async-generator-functions@^6.24.1: babel-plugin-syntax-async-generators "^6.5.0" babel-runtime "^6.22.0" -babel-plugin-transform-async-to-generator@^6.24.1: +babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" dependencies: @@ -635,14 +659,6 @@ babel-plugin-transform-async-to-generator@^6.24.1: babel-plugin-syntax-async-functions "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-class-constructor-call@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" - dependencies: - babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-plugin-transform-class-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" @@ -674,7 +690,7 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoping@^6.24.1: +babel-plugin-transform-es2015-block-scoping@^6.23.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" dependencies: @@ -684,7 +700,7 @@ babel-plugin-transform-es2015-block-scoping@^6.24.1: babel-types "^6.26.0" lodash "^4.17.4" -babel-plugin-transform-es2015-classes@^6.24.1: +babel-plugin-transform-es2015-classes@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" dependencies: @@ -698,33 +714,33 @@ babel-plugin-transform-es2015-classes@^6.24.1: babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-plugin-transform-es2015-computed-properties@^6.24.1: +babel-plugin-transform-es2015-computed-properties@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-destructuring@^6.22.0: +babel-plugin-transform-es2015-destructuring@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-duplicate-keys@^6.24.1: +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-plugin-transform-es2015-for-of@^6.22.0: +babel-plugin-transform-es2015-for-of@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-function-name@^6.24.1: +babel-plugin-transform-es2015-function-name@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" dependencies: @@ -738,7 +754,7 @@ babel-plugin-transform-es2015-literals@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-modules-amd@^6.24.1: +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" dependencies: @@ -746,7 +762,7 @@ babel-plugin-transform-es2015-modules-amd@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-commonjs@^6.24.1: +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" dependencies: @@ -755,7 +771,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.24.1: babel-template "^6.26.0" babel-types "^6.26.0" -babel-plugin-transform-es2015-modules-systemjs@^6.24.1: +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" dependencies: @@ -763,7 +779,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-umd@^6.24.1: +babel-plugin-transform-es2015-modules-umd@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" dependencies: @@ -771,14 +787,14 @@ babel-plugin-transform-es2015-modules-umd@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-object-super@^6.24.1: +babel-plugin-transform-es2015-object-super@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" dependencies: babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" -babel-plugin-transform-es2015-parameters@^6.24.1: +babel-plugin-transform-es2015-parameters@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" dependencies: @@ -789,7 +805,7 @@ babel-plugin-transform-es2015-parameters@^6.24.1: babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-plugin-transform-es2015-shorthand-properties@^6.24.1: +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" dependencies: @@ -802,7 +818,7 @@ babel-plugin-transform-es2015-spread@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-sticky-regex@^6.24.1: +babel-plugin-transform-es2015-sticky-regex@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" dependencies: @@ -816,13 +832,13 @@ babel-plugin-transform-es2015-template-literals@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-typeof-symbol@^6.22.0: +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-unicode-regex@^6.24.1: +babel-plugin-transform-es2015-unicode-regex@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" dependencies: @@ -830,7 +846,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.24.1: babel-runtime "^6.22.0" regexpu-core "^2.0.0" -babel-plugin-transform-exponentiation-operator@^6.24.1: +babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" dependencies: @@ -838,13 +854,6 @@ babel-plugin-transform-exponentiation-operator@^6.24.1: babel-plugin-syntax-exponentiation-operator "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-export-extensions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" - dependencies: - babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.22.0" - babel-plugin-transform-flow-comments@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-comments/-/babel-plugin-transform-flow-comments-6.22.0.tgz#8d9491132f2b48abd0656f96c20f3bbd6fc17529" @@ -894,7 +903,7 @@ babel-plugin-transform-react-jsx@^6.24.1: babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-regenerator@^6.24.1: +babel-plugin-transform-regenerator@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" dependencies: @@ -915,34 +924,40 @@ babel-polyfill@^6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-es2015@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" +babel-preset-env@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" dependencies: babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" babel-plugin-transform-es2015-arrow-functions "^6.22.0" babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" babel-preset-flow@^6.23.0: version "6.23.0" @@ -961,14 +976,6 @@ babel-preset-react@^6.24.1: babel-plugin-transform-react-jsx-source "^6.22.0" babel-preset-flow "^6.23.0" -babel-preset-stage-1@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" - dependencies: - babel-plugin-transform-class-constructor-call "^6.24.1" - babel-plugin-transform-export-extensions "^6.22.0" - babel-preset-stage-2 "^6.24.1" - babel-preset-stage-2@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" @@ -1231,6 +1238,13 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" +browserslist@^2.1.2: + version "2.11.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + dependencies: + caniuse-lite "^1.0.30000792" + electron-to-chromium "^1.3.30" + buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" @@ -1251,11 +1265,15 @@ builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" +builtin-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" -bytes@3.0.0: +bytes@3.0.0, bytes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -1309,6 +1327,10 @@ camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" +caniuse-lite@^1.0.30000792: + version "1.0.30000821" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000821.tgz#0f3223f1e048ed96451c56ca6cf197058c42cb93" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -1348,6 +1370,14 @@ chalk@^2.0.0, chalk@^2.1.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" +chalk@^2.0.1, chalk@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" @@ -1446,6 +1476,10 @@ commander@^2.11.0, commander@^2.3.0, commander@~2.12.1: version "2.12.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.1.tgz#468635c4168d06145b9323356d1da84d14ac4a7a" +commander@~2.14.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1644,6 +1678,12 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" +date-time@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/date-time/-/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2" + dependencies: + time-zone "^1.0.0" + debug@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" @@ -1759,6 +1799,10 @@ diff-match-patch@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" +diff@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + diffie-hellman@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" @@ -1803,6 +1847,10 @@ domain-browser@^1.1.1: version "1.1.7" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + eastasianwidth@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c" @@ -1817,6 +1865,10 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" +electron-to-chromium@^1.3.30: + version "1.3.41" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.41.tgz#7e33643e00cd85edfd17e04194f6d00e73737235" + elliptic@^6.0.0: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" @@ -2119,6 +2171,18 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" +estree-walker@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" + +estree-walker@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" + +estree-walker@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.1.tgz#64fc375053abc6f57d73e9bd2f004644ad3c5854" + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2264,6 +2328,10 @@ fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +fast-deep-equal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -2579,6 +2647,13 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +gzip-size@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c" + dependencies: + duplexer "^0.1.1" + pify "^3.0.0" + handle-thing@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" @@ -2631,6 +2706,10 @@ has-flag@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -2885,6 +2964,10 @@ ipaddr.js@1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" +irregular-plurals@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2963,6 +3046,10 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + is-number@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" @@ -3007,6 +3094,12 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" +is-reference@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.0.tgz#50e6ef3f64c361e2c53c0416cdc9420037f2685b" + dependencies: + "@types/estree" "0.0.38" + is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -3080,6 +3173,19 @@ jasmine-core@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" +jest-diff@^22.4.0: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" + +jest-get-type@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" @@ -3325,6 +3431,10 @@ loader-utils@^1.0.2, loader-utils@^1.1.0: emojis-list "^2.0.0" json5 "^0.5.0" +locate-character@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-2.0.5.tgz#f2d2614d49820ecb3c92d80d193b8db755f74c0f" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -3379,6 +3489,12 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +magic-string@^0.22.4: + version "0.22.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" + dependencies: + vlq "^0.2.2" + make-dir@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" @@ -3847,6 +3963,10 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-ms@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" + parsejson@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" @@ -3977,6 +4097,12 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +plur@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + dependencies: + irregular-plurals "^1.0.0" + pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" @@ -4093,6 +4219,20 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" +pretty-format@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +pretty-ms@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-3.1.0.tgz#e9cac9c76bf6ee52fe942dd9c6c4213153b12881" + dependencies: + parse-ms "^1.0.0" + plur "^2.1.2" + private@^0.1.6, private@^0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -4478,6 +4618,10 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -4509,6 +4653,12 @@ resolve@^1.1.6: dependencies: path-parse "^1.0.5" +resolve@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" + dependencies: + path-parse "^1.0.5" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -4535,6 +4685,84 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" +rollup-plugin-babel@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-3.0.3.tgz#63adedc863130327512a4a9006efc2241c5b7c15" + dependencies: + rollup-pluginutils "^1.5.0" + +rollup-plugin-commonjs@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.0.tgz#468341aab32499123ee9a04b22f51d9bf26fdd94" + dependencies: + estree-walker "^0.5.1" + magic-string "^0.22.4" + resolve "^1.5.0" + rollup-pluginutils "^2.0.1" + +rollup-plugin-node-resolve@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713" + dependencies: + builtin-modules "^2.0.0" + is-module "^1.0.0" + resolve "^1.1.6" + +rollup-plugin-replace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.0.0.tgz#19074089c8ed57184b8cc64e967a03d095119277" + dependencies: + magic-string "^0.22.4" + minimatch "^3.0.2" + rollup-pluginutils "^2.0.1" + +rollup-plugin-size-snapshot@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-size-snapshot/-/rollup-plugin-size-snapshot-0.2.1.tgz#f4d95ec11b6b6a291eeb93c87023ed4955942f9c" + dependencies: + bytes "^3.0.0" + chalk "^2.3.2" + fast-deep-equal "^1.1.0" + gzip-size "^4.1.0" + jest-diff "^22.4.0" + uglify-es "^3.3.9" + +rollup-plugin-uglify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-3.0.0.tgz#a34eca24617709c6bf1778e9653baafa06099b86" + dependencies: + uglify-es "^3.3.7" + +rollup-pluginutils@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" + dependencies: + estree-walker "^0.2.1" + minimatch "^3.0.2" + +rollup-pluginutils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" + dependencies: + estree-walker "^0.3.0" + micromatch "^2.3.11" + +rollup@^0.57.1: + version "0.57.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.57.1.tgz#0bb28be6151d253f67cf4a00fea48fb823c74027" + dependencies: + "@types/acorn" "^4.0.3" + acorn "^5.5.3" + acorn-dynamic-import "^3.0.0" + date-time "^2.1.0" + is-reference "^1.1.0" + locate-character "^2.0.5" + pretty-ms "^3.1.0" + require-relative "^0.8.7" + rollup-pluginutils "^2.0.1" + signal-exit "^3.0.2" + sourcemap-codec "^1.4.1" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -4755,6 +4983,10 @@ source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" +sourcemap-codec@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz#c8fd92d91889e902a07aee392bdd2c5863958ba2" + spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" @@ -4944,6 +5176,12 @@ supports-color@^4.0.0, supports-color@^4.2.1: dependencies: has-flag "^2.0.0" +supports-color@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" + dependencies: + has-flag "^3.0.0" + table@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" @@ -5000,6 +5238,10 @@ time-stamp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" +time-zone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" + timers-browserify@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" @@ -5099,6 +5341,13 @@ ua-parser-js@^0.7.9: version "0.7.17" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" +uglify-es@^3.3.7, uglify-es@^3.3.9: + version "3.3.10" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.10.tgz#8b0b7992cebe20edc26de1bf325cef797b8f3fa5" + dependencies: + commander "~2.14.1" + source-map "~0.6.1" + uglify-js@^2.8.29: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" @@ -5230,6 +5479,10 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vlq@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" From 65d3539e9a537e1bc14f279a4d7d33dc01165093 Mon Sep 17 00:00:00 2001 From: Bogdan Chadkin Date: Wed, 11 Apr 2018 01:00:41 +0300 Subject: [PATCH 285/412] Remove process.browser which is missing in browser (#329) --- .size-snapshot.json | 12 ++++++------ lib/DraggableCore.js | 2 +- package.json | 2 +- yarn.lock | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.size-snapshot.json b/.size-snapshot.json index 012ab86d..43b91a2a 100644 --- a/.size-snapshot.json +++ b/.size-snapshot.json @@ -1,12 +1,12 @@ { "dist/react-draggable.js": { - "bundled": 75241, - "minified": 22786, - "gzipped": 7678 + "bundled": 75213, + "minified": 22764, + "gzipped": 7663 }, "dist/react-draggable.min.js": { - "bundled": 51426, - "minified": 15772, - "gzipped": 5609 + "bundled": 51398, + "minified": 15750, + "gzipped": 5594 } } diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 758f25fa..fc7853f6 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -106,7 +106,7 @@ export default class DraggableCore extends React.Component) { - if (process.browser === true && props[propName] && props[propName].nodeType !== 1) { + if (props[propName] && props[propName].nodeType !== 1) { throw new Error('Draggable\'s offsetParent must be a DOM Node.'); } }, diff --git a/package.json b/package.json index 4ba052fd..7c29a174 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "core-js": "^2.5.1", "eslint": "^4.12.0", "eslint-plugin-react": "^7.5.1", - "flow-bin": "^0.59.0", + "flow-bin": "^0.69.0", "jasmine-core": "^2.8.0", "json-loader": "^0.5.7", "karma": "^1.7.1", diff --git a/yarn.lock b/yarn.lock index 4549fd1a..6fb7c5c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2455,9 +2455,9 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flow-bin@^0.59.0: - version "0.59.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.59.0.tgz#8c151ee7f09f1deed9bf0b9d1f2e8ab9d470f1bb" +flow-bin@^0.69.0: + version "0.69.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.69.0.tgz#053159a684a6051fcbf0b71a2eb19a9679082da6" for-in@^1.0.1: version "1.0.2" From d6cba849395a870fa23f61ce814a3ca10ff093ec Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 Apr 2018 17:01:59 -0500 Subject: [PATCH 286/412] fix(IE): Fix selection api on IE (#292) See https://github.com/STRML/react-grid-layout/issues/633 --- lib/utils/domFns.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 56f50efc..fc98c18a 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -150,7 +150,12 @@ export function addUserSelectStyles(doc: ?Document) { export function removeUserSelectStyles(doc: ?Document) { try { if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); - window.getSelection().removeAllRanges(); // remove selection caused by scroll + if (doc.selection) { + // $FlowIgnore: IE + doc.selection.empty(); + } else { + window.getSelection().removeAllRanges(); // remove selection caused by scroll + } } catch (e) { // probably IE } From ed0670d1178327fb789f311169a78ef765f2b4ed Mon Sep 17 00:00:00 2001 From: William Stein Date: Tue, 10 Apr 2018 15:02:17 -0700 Subject: [PATCH 287/412] fix year: 2017 -> 2018 (#317) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ff04f55..89605521 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -### 3.0.5 (Jan 11, 2017) +### 3.0.5 (Jan 11, 2018) - Bugfix: Fix crash in test environments during removeUserSelectStyles(). From 9f09552f71055c086473250cdb4cca7b4449eeb9 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 Apr 2018 17:04:16 -0500 Subject: [PATCH 288/412] fix(build): fix appveyor (now has yarn by default) --- appveyor.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 7e6e5e8b..a1be697a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,7 +2,7 @@ environment: matrix: - # - node_version: "7" + - node_version: "8" - node_version: "6" - node_version: "4" IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplore.exe" @@ -11,12 +11,6 @@ cache: - node_modules - "%LOCALAPPDATA%/Yarn" -install: - - ps: Install-Product node $env:node_version - - choco install -i yarn - - refreshenv - - yarn install - test_script: - npm run test-ie From c75db8e5639d8de24f9e5ef143aae4fd396e002f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 Apr 2018 17:08:23 -0500 Subject: [PATCH 289/412] types(domFns): fix doc.selection --- lib/utils/domFns.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index fc98c18a..4cbb52a4 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -150,6 +150,7 @@ export function addUserSelectStyles(doc: ?Document) { export function removeUserSelectStyles(doc: ?Document) { try { if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); + // $FlowIgnore: IE if (doc.selection) { // $FlowIgnore: IE doc.selection.empty(); From 93c93d86c331948cdd6ac84153cc0cd2d15f4d8b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 Apr 2018 17:15:17 -0500 Subject: [PATCH 290/412] chore(lint): fix rollup config quoting --- rollup.config.js | 54 ++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index c2347210..e0236286 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,33 +1,33 @@ -import nodeResolve from "rollup-plugin-node-resolve"; -import commonjs from "rollup-plugin-commonjs"; -import babel from "rollup-plugin-babel"; -import replace from "rollup-plugin-replace"; -import uglify from "rollup-plugin-uglify"; -import { sizeSnapshot } from "rollup-plugin-size-snapshot"; +import nodeResolve from 'rollup-plugin-node-resolve'; +import commonjs from 'rollup-plugin-commonjs'; +import babel from 'rollup-plugin-babel'; +import replace from 'rollup-plugin-replace'; +import uglify from 'rollup-plugin-uglify'; +import { sizeSnapshot } from 'rollup-plugin-size-snapshot'; -const input = "./lib/umd.js"; +const input = './lib/umd.js'; export default [ { input, output: { - file: "dist/react-draggable.js", - format: "umd", + file: 'dist/react-draggable.js', + format: 'umd', sourcemap: true, - name: "ReactDraggable", + name: 'ReactDraggable', globals: { - react: "React", - "react-dom": "ReactDOM" + react: 'React', + 'react-dom': 'ReactDOM' } }, - external: ["react", "react-dom"], + external: ['react', 'react-dom'], plugins: [ nodeResolve(), - commonjs({ include: "node_modules/**" }), - babel({ exclude: "node_modules/**", plugins: ["external-helpers"] }), + commonjs({ include: 'node_modules/**' }), + babel({ exclude: 'node_modules/**', plugins: ['external-helpers'] }), replace({ - "process.env.DRAGGABLE_DEBUG": "false", - "process.env.NODE_ENV": JSON.stringify("development") + 'process.env.DRAGGABLE_DEBUG': 'false', + 'process.env.NODE_ENV': JSON.stringify('development') }), sizeSnapshot() ] @@ -36,23 +36,23 @@ export default [ { input, output: { - file: "dist/react-draggable.min.js", - format: "umd", + file: 'dist/react-draggable.min.js', + format: 'umd', sourcemap: true, - name: "ReactDraggable", + name: 'ReactDraggable', globals: { - react: "React", - "react-dom": "ReactDOM" + react: 'React', + 'react-dom': 'ReactDOM' } }, - external: ["react", "react-dom"], + external: ['react', 'react-dom'], plugins: [ nodeResolve(), - commonjs({ include: "node_modules/**" }), - babel({ exclude: "node_modules/**", plugins: ["external-helpers"] }), + commonjs({ include: 'node_modules/**' }), + babel({ exclude: 'node_modules/**', plugins: ['external-helpers'] }), replace({ - "process.env.DRAGGABLE_DEBUG": "false", - "process.env.NODE_ENV": JSON.stringify("production") + 'process.env.DRAGGABLE_DEBUG': 'false', + 'process.env.NODE_ENV': JSON.stringify('production') }), sizeSnapshot(), uglify() From bed49761be17586f31f448042c170065a446565f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 11 Apr 2018 10:40:13 -0500 Subject: [PATCH 291/412] fix(appveyor): explicit yarn install --- appveyor.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index a1be697a..dbd918b4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -11,7 +11,8 @@ cache: - node_modules - "%LOCALAPPDATA%/Yarn" -test_script: - - npm run test-ie +build_script: + - cmd: yarn install -build: off +test_script: + - cmd: yarn run test-ie From 8beb72fb27978bee2879221163dae8d45ade5b8f Mon Sep 17 00:00:00 2001 From: Mato Ilic Date: Wed, 11 Apr 2018 21:52:51 +0200 Subject: [PATCH 292/412] Fixes some issues in the type definitions for TypeScript (#331) * Fix type definitions for event listeners which used native events instead of React's synthetic ones * Define type entry point properly for current TypeScript versions --- package.json | 1 + typings/index.d.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 7c29a174..5115f751 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "flow": "flow" }, "typings": "./typings/index.d.ts", + "types": "./typings/index.d.ts", "repository": { "type": "git", "url": "https://github.com/mzabriskie/react-draggable.git" diff --git a/typings/index.d.ts b/typings/index.d.ts index 048c9609..9e15e81a 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -18,7 +18,7 @@ declare module 'react-draggable' { position: ControlPosition } - export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false; + export type DraggableEventHandler = (e: React.MouseEvent | React.TouchEvent, data: DraggableData) => void | false; export interface DraggableData { node: HTMLElement, From 6584df4fb6b3c6aaa050e383791426cdde22028f Mon Sep 17 00:00:00 2001 From: Jason Marin <42546879+jasonmarinET@users.noreply.github.com> Date: Mon, 20 Aug 2018 12:02:32 -0500 Subject: [PATCH 293/412] Fix compare where portal elements are different instance to main window (#359) --- lib/utils/positionFns.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/positionFns.js b/lib/utils/positionFns.js index 6ee23dd4..a8eb31d9 100644 --- a/lib/utils/positionFns.js +++ b/lib/utils/positionFns.js @@ -25,7 +25,7 @@ export function getBoundPosition(draggable: Draggable, x: number, y: number): [n } else { boundNode = ownerDocument.querySelector(bounds); } - if (!(boundNode instanceof HTMLElement)) { + if (!(boundNode instanceof ownerWindow.HTMLElement)) { throw new Error('Bounds selector "' + bounds + '" could not find an element.'); } const nodeStyle = ownerWindow.getComputedStyle(node); From 876836f7c6c38dc4f3c6f6def7f3d8c9e4e5a9be Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 25 Sep 2018 10:59:24 +0200 Subject: [PATCH 294/412] FIX minor error in README (#366) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ca24ec6..3aa4c2d2 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import Draggable from 'react-draggable'; -class App extends React.Element { +class App extends React.Component { eventLogger = (e: MouseEvent, data: Object) => { console.log('Event: ', e); From 2fa2fdd2b060e1f0cfd2f8aecfb181f6cb211c2b Mon Sep 17 00:00:00 2001 From: Carter Wooten Date: Fri, 21 Dec 2018 05:17:16 -0500 Subject: [PATCH 295/412] Scale parameter (#352) * allowing the ability to pass a scale parameter so it drags correctly at any zoom level * Adding `scale` to `DraggableProps` * Removing `package-lock.js` that was added in last commit * Adding test for `scale` prop --- README.md | 9 ++++++++- lib/Draggable.js | 4 +++- lib/DraggableCore.js | 6 ++++++ lib/utils/positionFns.js | 9 +++++---- specs/draggable.spec.jsx | 18 ++++++++++++++++++ 5 files changed, 40 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3aa4c2d2..8a59620f 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,7 @@ class App extends React.Component { defaultPosition={{x: 0, y: 0}} position={null} grid={[25, 25]} + scale={1} onStart={this.handleStart} onDrag={this.handleDrag} onStop={this.handleStop}> @@ -217,6 +218,11 @@ onStop: DraggableEventHandler, // becomes 'controlled' and is not responsive to user input. Use `position` // if you need to have direct control of the element. position: {x: number, y: number} + +// Specifies the scale of the canvas your are dragging this element on. This allows +// you to, for example, get the correct drag deltas while you are zoomed in or out via +// a transform or matrix in the parent of this element. +scale: number } ``` @@ -272,7 +278,8 @@ on itself and thus must have callbacks attached to be useful. onStart: DraggableEventHandler, onDrag: DraggableEventHandler, onStop: DraggableEventHandler, - onMouseDown: (e: MouseEvent) => void + onMouseDown: (e: MouseEvent) => void, + scale: number } ``` diff --git a/lib/Draggable.js b/lib/Draggable.js index 1ca8c650..7fcfdc02 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -29,6 +29,7 @@ export type DraggableProps = { defaultClassNameDragged: string, defaultPosition: ControlPosition, position: ControlPosition, + scale: number }; // @@ -162,7 +163,8 @@ export default class Draggable extends React.Component's events export function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData { + const scale = draggable.props.scale; return { node: coreData.node, - x: draggable.state.x + coreData.deltaX, - y: draggable.state.y + coreData.deltaY, - deltaX: coreData.deltaX, - deltaY: coreData.deltaY, + x: draggable.state.x + (coreData.deltaX / scale), + y: draggable.state.y + (coreData.deltaY / scale), + deltaX: (coreData.deltaX / scale), + deltaY: (coreData.deltaY / scale), lastX: draggable.state.x, lastY: draggable.state.y }; diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 4a370be6..2255d10b 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -134,6 +134,24 @@ describe('react-draggable', function () { assert(drag.props.onStop === handleStop); }); + it('should adjust draggable data output when `scale` prop supplied', function () { + function onDrag(event, data) { + assert(data.x === 200); + assert(data.y === 200); + assert(data.deltaX === 200); + assert(data.deltaY === 200); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); + it('should throw when setting className', function () { drag = (); From 991101acf094e54497d9c989b202d95e62788e53 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 21 Dec 2018 04:24:02 -0600 Subject: [PATCH 296/412] release v3.1.0 --- CHANGELOG.md | 11 +- bower.json | 2 +- dist/react-draggable.js | 4808 ++++++++++++++----------------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 3 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 +- 7 files changed, 2150 insertions(+), 2682 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89605521..18a7a938 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### 3.1.0 (Dec 21, 2018) + +- Feature: Added `scale` prop ([#352](https://github.com/mzabriskie/react-draggable/pull/352)) + - Thanks, @wootencl +- Bugfix: Remove process.browser which is missing in browser ([#329]((https://github.com/mzabriskie/react-draggable/pull/329)) +- Bugfix: Fix selection api on IE ([#292](https://github.com/mzabriskie/react-draggable/pull/292)) +- Bugfix: Fixes some issues in the type definitions for TypeScript ([#331]((https://github.com/mzabriskie/react-draggable/pull/331)) +- Bugfix: Fix compare where portal elements are different instance to main window ([#359]((https://github.com/mzabriskie/react-draggable/pull/359)) + ### 3.0.5 (Jan 11, 2018) - Bugfix: Fix crash in test environments during removeUserSelectStyles(). @@ -7,7 +16,7 @@ ### 3.0.4 (Nov 27, 2017) - Bugfix: Fix "Cannot call property 'call' of undefined" (matchesSelector) - = Fixes [#300](https://github.com/mzabriskie/react-draggable/issues/300) + - Fixes [#300](https://github.com/mzabriskie/react-draggable/issues/300) ### 3.0.3 (Aug 31, 2017) diff --git a/bower.json b/bower.json index 39a8d2b5..d30c37f7 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.5", + "version": "3.1.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 750aaa8f..cb18e5c9 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -1,2746 +1,2204 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("react-dom"), require("react")); - else if(typeof define === 'function' && define.amd) - define(["react-dom", "react"], factory); - else if(typeof exports === 'object') - exports["ReactDraggable"] = factory(require("react-dom"), require("react")); - else - root["ReactDraggable"] = factory(root["ReactDOM"], root["React"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 12); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.findInArray = findInArray; -exports.isFunction = isFunction; -exports.isNum = isNum; -exports.int = int; -exports.dontSetMe = dontSetMe; - -// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc -function findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/ { - for (var i = 0, length = array.length; i < length; i++) { - if (callback.apply(callback, [array[i], i, array])) return array[i]; - } -} - -function isFunction(func /*: any*/) /*: boolean*/ { - return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; -} - -function isNum(num /*: any*/) /*: boolean*/ { - return typeof num === 'number' && !isNaN(num); -} - -function int(a /*: string*/) /*: number*/ { - return parseInt(a, 10); -} - -function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) { - if (props[propName]) { - return new Error('Invalid prop ' + propName + ' passed to ' + componentName + ' - do not set this, set it on the child.'); - } -} - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - */ - -function makeEmptyFunction(arg) { - return function () { - return arg; - }; -} - -/** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ -var emptyFunction = function emptyFunction() {}; - -emptyFunction.thatReturns = makeEmptyFunction; -emptyFunction.thatReturnsFalse = makeEmptyFunction(false); -emptyFunction.thatReturnsTrue = makeEmptyFunction(true); -emptyFunction.thatReturnsNull = makeEmptyFunction(null); -emptyFunction.thatReturnsThis = function () { - return this; -}; -emptyFunction.thatReturnsArgument = function (arg) { - return arg; -}; - -module.exports = emptyFunction; - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - - - -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - -var validateFormat = function validateFormat(format) {}; - -if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - validateFormat = function validateFormat(format) { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - }; -} - -function invariant(condition, format, a, b, c, d, e, f) { - validateFormat(format); - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } -} - -module.exports = invariant; - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_4__; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -exports.matchesSelector = matchesSelector; -exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo; -exports.addEvent = addEvent; -exports.removeEvent = removeEvent; -exports.outerHeight = outerHeight; -exports.outerWidth = outerWidth; -exports.innerHeight = innerHeight; -exports.innerWidth = innerWidth; -exports.offsetXYFromParent = offsetXYFromParent; -exports.createCSSTransform = createCSSTransform; -exports.createSVGTransform = createSVGTransform; -exports.getTouch = getTouch; -exports.getTouchIdentifier = getTouchIdentifier; -exports.addUserSelectStyles = addUserSelectStyles; -exports.removeUserSelectStyles = removeUserSelectStyles; -exports.styleHacks = styleHacks; -exports.addClassName = addClassName; -exports.removeClassName = removeClassName; - -var _shims = __webpack_require__(0); - -var _getPrefix = __webpack_require__(19); - -var _getPrefix2 = _interopRequireDefault(_getPrefix); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -/*:: import type {ControlPosition, MouseTouchEvent} from './types';*/ - - -var matchesSelectorFunc = ''; -function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/ { - if (!matchesSelectorFunc) { - matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) { - // $FlowIgnore: Doesn't think elements are indexable - return (0, _shims.isFunction)(el[method]); - }); - } - - // Might not be found entirely (not an Element?) - in that case, bail - // $FlowIgnore: Doesn't think elements are indexable - if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; - - // $FlowIgnore: Doesn't think elements are indexable - return el[matchesSelectorFunc](selector); -} - -// Works up the tree to the draggable itself attempting to match selector. -function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/ { - var node = el; - do { - if (matchesSelector(node, selector)) return true; - if (node === baseNode) return false; - node = node.parentNode; - } while (node); - - return false; -} - -function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { - if (!el) { - return; - } - if (el.attachEvent) { - el.attachEvent('on' + event, handler); - } else if (el.addEventListener) { - el.addEventListener(event, handler, true); - } else { - // $FlowIgnore: Doesn't think elements are indexable - el['on' + event] = handler; - } -} - -function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { - if (!el) { - return; - } - if (el.detachEvent) { - el.detachEvent('on' + event, handler); - } else if (el.removeEventListener) { - el.removeEventListener(event, handler, true); - } else { - // $FlowIgnore: Doesn't think elements are indexable - el['on' + event] = null; - } -} - -function outerHeight(node /*: HTMLElement*/) /*: number*/ { - // This is deliberately excluding margin for our calculations, since we are using - // offsetTop which is including margin. See getBoundPosition - var height = node.clientHeight; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - height += (0, _shims.int)(computedStyle.borderTopWidth); - height += (0, _shims.int)(computedStyle.borderBottomWidth); - return height; -} - -function outerWidth(node /*: HTMLElement*/) /*: number*/ { - // This is deliberately excluding margin for our calculations, since we are using - // offsetLeft which is including margin. See getBoundPosition - var width = node.clientWidth; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - width += (0, _shims.int)(computedStyle.borderLeftWidth); - width += (0, _shims.int)(computedStyle.borderRightWidth); - return width; -} -function innerHeight(node /*: HTMLElement*/) /*: number*/ { - var height = node.clientHeight; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - height -= (0, _shims.int)(computedStyle.paddingTop); - height -= (0, _shims.int)(computedStyle.paddingBottom); - return height; -} - -function innerWidth(node /*: HTMLElement*/) /*: number*/ { - var width = node.clientWidth; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - width -= (0, _shims.int)(computedStyle.paddingLeft); - width -= (0, _shims.int)(computedStyle.paddingRight); - return width; -} - -// Get from offsetParent -function offsetXYFromParent(evt /*: {clientX: number, clientY: number}*/, offsetParent /*: HTMLElement*/) /*: ControlPosition*/ { - var isBody = offsetParent === offsetParent.ownerDocument.body; - var offsetParentRect = isBody ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); - - var x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; - var y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; - - return { x: x, y: y }; -} - -function createCSSTransform(_ref) /*: Object*/ { - var x = _ref.x, - y = _ref.y; - - // Replace unitless items with px - return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix2.default), 'translate(' + x + 'px,' + y + 'px)'); -} - -function createSVGTransform(_ref3) /*: string*/ { - var x = _ref3.x, - y = _ref3.y; - - return 'translate(' + x + ',' + y + ')'; -} - -function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { - return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) { - return identifier === t.identifier; - }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) { - return identifier === t.identifier; - }); -} - -function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/ { - if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; - if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; -} - -// User-select Hacks: -// -// Useful for preventing blue highlights all over everything when dragging. - -// Note we're passing `document` b/c we could be iframed -function addUserSelectStyles(doc /*: ?Document*/) { - if (!doc) return; - var styleEl = doc.getElementById('react-draggable-style-el'); - if (!styleEl) { - styleEl = doc.createElement('style'); - styleEl.type = 'text/css'; - styleEl.id = 'react-draggable-style-el'; - styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\n'; - styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; - doc.getElementsByTagName('head')[0].appendChild(styleEl); - } - if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); -} - -function removeUserSelectStyles(doc /*: ?Document*/) { - try { - if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); - window.getSelection().removeAllRanges(); // remove selection caused by scroll - } catch (e) { - // probably IE - } -} - -function styleHacks() /*: Object*/ { - var childStyle /*: Object*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - // Workaround IE pointer events; see #51 - // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 - return _extends({ - touchAction: 'none' - }, childStyle); -} - -function addClassName(el /*: HTMLElement*/, className /*: string*/) { - if (el.classList) { - el.classList.add(className); - } else { - if (!el.className.match(new RegExp('(?:^|\\s)' + className + '(?!\\S)'))) { - el.className += ' ' + className; - } - } -} - -function removeClassName(el /*: HTMLElement*/, className /*: string*/) { - if (el.classList) { - el.classList.remove(className); - } else { - el.className = el.className.replace(new RegExp('(?:^|\\s)' + className + '(?!\\S)', 'g'), ''); - } -} - -/***/ }), -/* 6 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_6__; - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && - Symbol.for && - Symbol.for('react.element')) || - 0xeac7; - - var isValidElement = function(object) { - return typeof object === 'object' && - object !== null && - object.$$typeof === REACT_ELEMENT_TYPE; - }; - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = __webpack_require__(14)(isValidElement, throwOnDirectAccess); -} else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(17)(); -} - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - - - -var emptyFunction = __webpack_require__(1); - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = emptyFunction; - -if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; -} - -module.exports = warning; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getBoundPosition = getBoundPosition; -exports.snapToGrid = snapToGrid; -exports.canDragX = canDragX; -exports.canDragY = canDragY; -exports.getControlPosition = getControlPosition; -exports.createCoreData = createCoreData; -exports.createDraggableData = createDraggableData; - -var _shims = __webpack_require__(0); - -var _reactDom = __webpack_require__(4); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _domFns = __webpack_require__(5); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/*:: import type Draggable from '../Draggable';*/ -/*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/ -/*:: import type DraggableCore from '../DraggableCore';*/ -function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/ { - // If no bounds, short-circuit and move on - if (!draggable.props.bounds) return [x, y]; - - // Clone new bounds - var bounds = draggable.props.bounds; - - bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds); - var node = findDOMNode(draggable); - - if (typeof bounds === 'string') { - var ownerDocument = node.ownerDocument; - - var ownerWindow = ownerDocument.defaultView; - var boundNode = void 0; - if (bounds === 'parent') { - boundNode = node.parentNode; - } else { - boundNode = ownerDocument.querySelector(bounds); - } - if (!(boundNode instanceof HTMLElement)) { - throw new Error('Bounds selector "' + bounds + '" could not find an element.'); - } - var nodeStyle = ownerWindow.getComputedStyle(node); - var boundNodeStyle = ownerWindow.getComputedStyle(boundNode); - // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. - bounds = { - left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft), - top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop), - right: (0, _domFns.innerWidth)(boundNode) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight), - bottom: (0, _domFns.innerHeight)(boundNode) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom) - }; - } - - // Keep x and y below right and bottom limits... - if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right); - if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); - - // But above left and top limits. - if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left); - if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top); - - return [x, y]; -} - -function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/ { - var x = Math.round(pendingX / grid[0]) * grid[0]; - var y = Math.round(pendingY / grid[1]) * grid[1]; - return [x, y]; -} - -function canDragX(draggable /*: Draggable*/) /*: boolean*/ { - return draggable.props.axis === 'both' || draggable.props.axis === 'x'; -} - -function canDragY(draggable /*: Draggable*/) /*: boolean*/ { - return draggable.props.axis === 'both' || draggable.props.axis === 'y'; -} - -// Get {x, y} positions from event. -function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { - var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null; - if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch - var node = findDOMNode(draggableCore); - // User can provide an offsetParent if desired. - var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body; - return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent); -} - -// Create an data object exposed by 's events -function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/ { - var state = draggable.state; - var isStart = !(0, _shims.isNum)(state.lastX); - var node = findDOMNode(draggable); - - if (isStart) { - // If this is our first move, use the x and y as last coords. - return { - node: node, - deltaX: 0, deltaY: 0, - lastX: x, lastY: y, - x: x, y: y - }; - } else { - // Otherwise calculate proper values. - return { - node: node, - deltaX: x - state.lastX, deltaY: y - state.lastY, - lastX: state.lastX, lastY: state.lastY, - x: x, y: y - }; - } -} - -// Create an data exposed by 's events -function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/ { - return { - node: coreData.node, - x: draggable.state.x + coreData.deltaX, - y: draggable.state.y + coreData.deltaY, - deltaX: coreData.deltaX, - deltaY: coreData.deltaY, - lastX: draggable.state.x, - lastY: draggable.state.y - }; -} - -// A lot faster than stringify/parse -function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/ { - return { - left: bounds.left, - top: bounds.top, - right: bounds.right, - bottom: bounds.bottom - }; -} - -function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/ { - var node = _reactDom2.default.findDOMNode(draggable); - if (!node) { - throw new Error(': Unmounted during event!'); - } - // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME - return node; -} - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = __webpack_require__(6); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes = __webpack_require__(7); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _reactDom = __webpack_require__(4); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _domFns = __webpack_require__(5); - -var _positionFns = __webpack_require__(9); - -var _shims = __webpack_require__(0); - -var _log = __webpack_require__(11); - -var _log2 = _interopRequireDefault(_log); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/ - - -// Simple abstraction for dragging events names. -/*:: import type {Element as ReactElement} from 'react';*/ -var eventsFor = { - touch: { - start: 'touchstart', - move: 'touchmove', - stop: 'touchend' - }, - mouse: { - start: 'mousedown', - move: 'mousemove', - stop: 'mouseup' - } -}; - -// Default to mouse events. -var dragEventFor = eventsFor.mouse; - -/*:: type DraggableCoreState = { - dragging: boolean, - lastX: number, - lastY: number, - touchIdentifier: ?number -};*/ -/*:: export type DraggableBounds = { - left: number, - right: number, - top: number, - bottom: number, -};*/ -/*:: export type DraggableData = { - node: HTMLElement, - x: number, y: number, - deltaX: number, deltaY: number, - lastX: number, lastY: number, -};*/ -/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;*/ -/*:: export type ControlPosition = {x: number, y: number};*/ - - -// -// Define . -// -// is for advanced usage of . It maintains minimal internal state so it can -// work well with libraries that require more control over the element. -// - -/*:: export type DraggableCoreProps = { - allowAnyClick: boolean, - cancel: string, - children: ReactElement, - disabled: boolean, - enableUserSelectHack: boolean, - offsetParent: HTMLElement, - grid: [number, number], - handle: string, - onStart: DraggableEventHandler, - onDrag: DraggableEventHandler, - onStop: DraggableEventHandler, - onMouseDown: (e: MouseEvent) => void, -};*/ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react-dom'), require('react')) : + typeof define === 'function' && define.amd ? define(['react-dom', 'react'], factory) : + (global.ReactDraggable = factory(global.ReactDOM,global.React)); +}(this, (function (ReactDOM,React) { 'use strict'; -var DraggableCore = function (_React$Component) { - _inherits(DraggableCore, _React$Component); + ReactDOM = ReactDOM && ReactDOM.hasOwnProperty('default') ? ReactDOM['default'] : ReactDOM; + React = React && React.hasOwnProperty('default') ? React['default'] : React; - function DraggableCore() { - var _ref; + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } - var _temp, _this, _ret; - - _classCallCheck(this, DraggableCore); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = DraggableCore.__proto__ || Object.getPrototypeOf(DraggableCore)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - dragging: false, - // Used while dragging to determine deltas. - lastX: NaN, lastY: NaN, - touchIdentifier: null - }, _this.handleDragStart = function (e) { - // Make it possible to attach event handlers on top of this one. - _this.props.onMouseDown(e); - - // Only accept left-clicks. - if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; - - // Get nodes. Be sure to grab relative document (could be iframed) - var thisNode = _reactDom2.default.findDOMNode(_this); - if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) { - throw new Error(' not mounted on DragStart!'); - } - var ownerDocument = thisNode.ownerDocument; - - // Short circuit if handle or cancel prop was provided and selector doesn't match. - - if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) { - return; - } - - // Set touch identifier in component state if this is a touch event. This allows us to - // distinguish between individual touches on multitouch screens by identifying which - // touchpoint was set to this element. - var touchIdentifier = (0, _domFns.getTouchIdentifier)(e); - _this.setState({ touchIdentifier: touchIdentifier }); - - // Get the current drag point from the event. This is used as the offset. - var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _this); - if (position == null) return; // not possible but satisfies flow - var x = position.x, - y = position.y; - - // Create an event object with all the data parents need to make a decision here. - - var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - - (0, _log2.default)('DraggableCore: handleDragStart: %j', coreEvent); - - // Call event handler. If it returns explicit false, cancel. - (0, _log2.default)('calling', _this.props.onStart); - var shouldUpdate = _this.props.onStart(e, coreEvent); - if (shouldUpdate === false) return; - - // Add a style to the body to disable user-select. This prevents text from - // being selected all over the page. - if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); - - // Initiate dragging. Set the current x and y as offsets - // so we know how much we've moved during the drag. This allows us - // to drag elements around even if they have been moved, without issue. - _this.setState({ - dragging: true, - - lastX: x, - lastY: y - }); - - // Add events to the document directly so we catch when the user's mouse/touch moves outside of - // this element. We use different events depending on whether or not we have detected that this - // is a touch-capable device. - (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag); - (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop); - }, _this.handleDrag = function (e) { - - // Prevent scrolling on mobile devices, like ipad/iphone. - if (e.type === 'touchmove') e.preventDefault(); - - // Get the current drag point from the event. This is used as the offset. - var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); - if (position == null) return; - var x = position.x, - y = position.y; - - // Snap to grid if prop has been provided - - if (Array.isArray(_this.props.grid)) { - var _deltaX = x - _this.state.lastX, - _deltaY = y - _this.state.lastY; - - var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, _deltaX, _deltaY); - - var _snapToGrid2 = _slicedToArray(_snapToGrid, 2); - - _deltaX = _snapToGrid2[0]; - _deltaY = _snapToGrid2[1]; - - if (!_deltaX && !_deltaY) return; // skip useless drag - x = _this.state.lastX + _deltaX, y = _this.state.lastY + _deltaY; - } - - var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - - (0, _log2.default)('DraggableCore: handleDrag: %j', coreEvent); - - // Call event handler. If it returns explicit false, trigger end. - var shouldUpdate = _this.props.onDrag(e, coreEvent); - if (shouldUpdate === false) { - try { - // $FlowIgnore - _this.handleDragStop(new MouseEvent('mouseup')); - } catch (err) { - // Old browsers - var event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/); - // I see why this insanity was deprecated - // $FlowIgnore - event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); - _this.handleDragStop(event); - } - return; - } - - _this.setState({ - lastX: x, - lastY: y - }); - }, _this.handleDragStop = function (e) { - if (!_this.state.dragging) return; - - var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _this); - if (position == null) return; - var x = position.x, - y = position.y; - - var coreEvent = (0, _positionFns.createCoreData)(_this, x, y); - - var thisNode = _reactDom2.default.findDOMNode(_this); - if (thisNode) { - // Remove user-select hack - if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument); - } - - (0, _log2.default)('DraggableCore: handleDragStop: %j', coreEvent); - - // Reset the el. - _this.setState({ - dragging: false, - lastX: NaN, - lastY: NaN - }); - - // Call event handler - _this.props.onStop(e, coreEvent); - - if (thisNode) { - // Remove event handlers - (0, _log2.default)('DraggableCore: Removing handlers'); - (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag); - (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop); - } - }, _this.onMouseDown = function (e) { - dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse - - return _this.handleDragStart(e); - }, _this.onMouseUp = function (e) { - dragEventFor = eventsFor.mouse; - - return _this.handleDragStop(e); - }, _this.onTouchStart = function (e) { - // We're on a touch device now, so change the event handlers - dragEventFor = eventsFor.touch; - - return _this.handleDragStart(e); - }, _this.onTouchEnd = function (e) { - // We're on a touch device now, so change the event handlers - dragEventFor = eventsFor.touch; - - return _this.handleDragStop(e); - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - _createClass(DraggableCore, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - // Remove any leftover event handlers. Remove both touch and mouse handlers in case - // some browser quirk caused a touch event to fire during a mouse move, or vice versa. - var thisNode = _reactDom2.default.findDOMNode(this); - if (thisNode) { - var ownerDocument = thisNode.ownerDocument; - - (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag); - (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag); - (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); - (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop); - if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument); - } - } - - // Same as onMouseDown (start drag), but now consider this a touch device. - - }, { - key: 'render', - value: function render() { - // Reuse the child provided - // This makes it flexible to use whatever element is wanted (div, ul, etc) - return _react2.default.cloneElement(_react2.default.Children.only(this.props.children), { - style: (0, _domFns.styleHacks)(this.props.children.props.style), - - // Note: mouseMove handler is attached to document so it will still function - // when the user drags quickly and leaves the bounds of the element. - onMouseDown: this.onMouseDown, - onTouchStart: this.onTouchStart, - onMouseUp: this.onMouseUp, - onTouchEnd: this.onTouchEnd - }); - } - }]); - - return DraggableCore; -}(_react2.default.Component); - -DraggableCore.displayName = 'DraggableCore'; -DraggableCore.propTypes = { - /** - * `allowAnyClick` allows dragging using any mouse button. - * By default, we only accept the left button. - * - * Defaults to `false`. - */ - allowAnyClick: _propTypes2.default.bool, - - /** - * `disabled`, if true, stops the from dragging. All handlers, - * with the exception of `onMouseDown`, will not fire. - */ - disabled: _propTypes2.default.bool, - - /** - * By default, we add 'user-select:none' attributes to the document body - * to prevent ugly text selection during drag. If this is causing problems - * for your app, set this to `false`. - */ - enableUserSelectHack: _propTypes2.default.bool, - - /** - * `offsetParent`, if set, uses the passed DOM node to compute drag offsets - * instead of using the parent node. - */ - offsetParent: function offsetParent(props /*: DraggableCoreProps*/, propName /*: $Keys*/) { - if (process.browser === true && props[propName] && props[propName].nodeType !== 1) { - throw new Error('Draggable\'s offsetParent must be a DOM Node.'); - } - }, - - /** - * `grid` specifies the x and y that dragging should snap to. - */ - grid: _propTypes2.default.arrayOf(_propTypes2.default.number), - - /** - * `handle` specifies a selector to be used as the handle that initiates drag. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
- *
Click me to drag
- *
This is some other content
- *
- *
- * ); - * } - * }); - * ``` - */ - handle: _propTypes2.default.string, - - /** - * `cancel` specifies a selector to be used to prevent drag initialization. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return( - * - *
- *
You can't drag from here
- *
Dragging here works fine
- *
- *
- * ); - * } - * }); - * ``` - */ - cancel: _propTypes2.default.string, - - /** - * Called when dragging starts. - * If this function returns the boolean false, dragging will be canceled. - */ - onStart: _propTypes2.default.func, - - /** - * Called while dragging. - * If this function returns the boolean false, dragging will be canceled. - */ - onDrag: _propTypes2.default.func, - - /** - * Called when dragging stops. - * If this function returns the boolean false, the drag will remain active. - */ - onStop: _propTypes2.default.func, - - /** - * A workaround option which can be passed if onMouseDown needs to be accessed, - * since it'll always be blocked (as there is internal use of onMouseDown) - */ - onMouseDown: _propTypes2.default.func, - - /** - * These properties should be defined on the child, not here. - */ - className: _shims.dontSetMe, - style: _shims.dontSetMe, - transform: _shims.dontSetMe -}; -DraggableCore.defaultProps = { - allowAnyClick: false, // by default only accept left click - cancel: null, - disabled: false, - enableUserSelectHack: true, - offsetParent: null, - handle: null, - grid: null, - transform: null, - onStart: function onStart() {}, - onDrag: function onDrag() {}, - onStop: function onStop() {}, - onMouseDown: function onMouseDown() {} -}; -exports.default = DraggableCore; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20))) - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = log; - -/*eslint no-console:0*/ -function log() { - var _console; - - if (undefined) (_console = console).log.apply(_console, arguments); -} - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + function makeEmptyFunction(arg) { + return function () { + return arg; + }; + } -"use strict"; + /** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ + var emptyFunction = function emptyFunction() {}; + + emptyFunction.thatReturns = makeEmptyFunction; + emptyFunction.thatReturnsFalse = makeEmptyFunction(false); + emptyFunction.thatReturnsTrue = makeEmptyFunction(true); + emptyFunction.thatReturnsNull = makeEmptyFunction(null); + emptyFunction.thatReturnsThis = function () { + return this; + }; + emptyFunction.thatReturnsArgument = function (arg) { + return arg; + }; + + var emptyFunction_1 = emptyFunction; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + /** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + + var validateFormat = function validateFormat(format) {}; + + { + validateFormat = function validateFormat(format) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + }; + } + function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } + } -var Draggable = __webpack_require__(13).default; + var invariant_1 = invariant; + + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var warning = emptyFunction_1; + + { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; + } -// Previous versions of this lib exported as the root export. As to not break -// them, or TypeScript, we export *both* as the root and as 'default'. -// See https://github.com/mzabriskie/react-draggable/pull/254 -// and https://github.com/mzabriskie/react-draggable/issues/266 -module.exports = Draggable; -module.exports.default = Draggable; -module.exports.DraggableCore = __webpack_require__(10).default; + var warning_1 = warning; + + /* + object-assign + (c) Sindre Sorhus + @license MIT + */ + /* eslint-disable no-unused-vars */ + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + + function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { + return Object(val); + } -"use strict"; + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + // Detect buggy property enumeration order in older V8 versions. -Object.defineProperty(exports, "__esModule", { - value: true -}); + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } + } -var _react = __webpack_require__(6); + var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; -var _react2 = _interopRequireDefault(_react); + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); -var _propTypes = __webpack_require__(7); + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } -var _propTypes2 = _interopRequireDefault(_propTypes); + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } -var _reactDom = __webpack_require__(4); + return to; + }; -var _reactDom2 = _interopRequireDefault(_reactDom); + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ -var _classnames = __webpack_require__(18); + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; -var _classnames2 = _interopRequireDefault(_classnames); + var ReactPropTypesSecret_1 = ReactPropTypesSecret; -var _domFns = __webpack_require__(5); + { + var invariant$1 = invariant_1; + var warning$1 = warning_1; + var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; + var loggedTypeFailures = {}; + } -var _positionFns = __webpack_require__(9); + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + { + for (var typeSpecName in typeSpecs) { + if (typeSpecs.hasOwnProperty(typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + invariant$1(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); + } catch (ex) { + error = ex; + } + warning$1(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + warning$1(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); + } + } + } + } + } -var _shims = __webpack_require__(0); + var checkPropTypes_1 = checkPropTypes; + + var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret_1) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + invariant_1( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + } else if ("development" !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + warning_1( + false, + 'You are manually calling a React.PropTypes validation ' + + 'function for the `%s` prop on `%s`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', + propFullName, + componentName + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction_1.thatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + warning_1(false, 'Invalid argument supplied to oneOf, expected an instance of array.'); + return emptyFunction_1.thatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + warning_1(false, 'Invalid argument supplied to oneOfType, expected an instance of array.'); + return emptyFunction_1.thatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + warning_1( + false, + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received %s at index %s.', + getPostfixForTypeWarning(checker), + i + ); + return emptyFunction_1.thatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = objectAssign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes_1; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + var propTypes = createCommonjsModule(function (module) { + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + { + var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && + Symbol.for && + Symbol.for('react.element')) || + 0xeac7; + + var isValidElement = function(object) { + return typeof object === 'object' && + object !== null && + object.$$typeof === REACT_ELEMENT_TYPE; + }; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = factoryWithTypeCheckers(isValidElement, throwOnDirectAccess); + } + }); + + var classnames = createCommonjsModule(function (module) { + /*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames + */ + /* global define */ + + (function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg)) { + classes.push(classNames.apply(null, arg)); + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } -var _DraggableCore = __webpack_require__(10); + return classes.join(' '); + } -var _DraggableCore2 = _interopRequireDefault(_DraggableCore); + if ('object' !== 'undefined' && module.exports) { + module.exports = classNames; + } else if (typeof undefined === 'function' && typeof undefined.amd === 'object' && undefined.amd) { + // register as 'classnames', consistent with npm package name + undefined('classnames', [], function () { + return classNames; + }); + } else { + window.classNames = classNames; + } + }()); + }); + + // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc + function findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/ { + for (var i = 0, length = array.length; i < length; i++) { + if (callback.apply(callback, [array[i], i, array])) return array[i]; + } + } -var _log = __webpack_require__(11); + function isFunction(func /*: any*/) /*: boolean*/ { + return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; + } -var _log2 = _interopRequireDefault(_log); + function isNum(num /*: any*/) /*: boolean*/ { + return typeof num === 'number' && !isNaN(num); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function int(a /*: string*/) /*: number*/ { + return parseInt(a, 10); + } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) { + if (props[propName]) { + return new Error('Invalid prop ' + propName + ' passed to ' + componentName + ' - do not set this, set it on the child.'); + } + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + var prefixes = ['Moz', 'Webkit', 'O', 'ms']; + function getPrefix() /*: string*/ { + var prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform'; -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + // Checking specifically for 'window.document' is for pseudo-browser server-side + // environments that define 'window' as the global context. + // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84) + if (typeof window === 'undefined' || typeof window.document === 'undefined') return ''; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + var style = window.document.documentElement.style; -/*:: import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';*/ -/*:: import type {DraggableEventHandler} from './utils/types';*/ -/*:: import type {Element as ReactElement} from 'react';*/ -/*:: type DraggableState = { - dragging: boolean, - dragged: boolean, - x: number, y: number, - slackX: number, slackY: number, - isElementSVG: boolean -};*/ + if (prop in style) return ''; + for (var i = 0; i < prefixes.length; i++) { + if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i]; + } -// -// Define -// + return ''; + } -/*:: export type DraggableProps = { - ...$Exact, - axis: 'both' | 'x' | 'y' | 'none', - bounds: DraggableBounds | string | false, - defaultClassName: string, - defaultClassNameDragging: string, - defaultClassNameDragged: string, - defaultPosition: ControlPosition, - position: ControlPosition, -};*/ + function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/ { + return prefix ? '' + prefix + kebabToTitleCase(prop) : prop; + } -var Draggable = function (_React$Component) { - _inherits(Draggable, _React$Component); + function kebabToTitleCase(str /*: string*/) /*: string*/ { + var out = ''; + var shouldCapitalize = true; + for (var i = 0; i < str.length; i++) { + if (shouldCapitalize) { + out += str[i].toUpperCase(); + shouldCapitalize = false; + } else if (str[i] === '-') { + shouldCapitalize = true; + } else { + out += str[i]; + } + } + return out; + } - function Draggable(props /*: DraggableProps*/) { - _classCallCheck(this, Draggable); + // Default export is the prefix itself, like 'Moz', 'Webkit', etc + // Note that you may have to re-test for certain things; for instance, Chrome 50 + // can handle unprefixed `transform`, but not unprefixed `user-select` + var browserPrefix = getPrefix(); + + var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }; + + var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + var defineProperty = function (obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + }; + + var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + var inherits = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + }; + + var possibleConstructorReturn = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && (typeof call === "object" || typeof call === "function") ? call : self; + }; + + var slicedToArray = function () { + function sliceIterator(arr, i) { + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"]) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; + } + + return function (arr, i) { + if (Array.isArray(arr)) { + return arr; + } else if (Symbol.iterator in Object(arr)) { + return sliceIterator(arr, i); + } else { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + } + }; + }(); + + /*:: import type {ControlPosition, MouseTouchEvent} from './types';*/ + + + var matchesSelectorFunc = ''; + function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/ { + if (!matchesSelectorFunc) { + matchesSelectorFunc = findInArray(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) { + // $FlowIgnore: Doesn't think elements are indexable + return isFunction(el[method]); + }); + } + + // Might not be found entirely (not an Element?) - in that case, bail + // $FlowIgnore: Doesn't think elements are indexable + if (!isFunction(el[matchesSelectorFunc])) return false; + + // $FlowIgnore: Doesn't think elements are indexable + return el[matchesSelectorFunc](selector); + } - var _this = _possibleConstructorReturn(this, (Draggable.__proto__ || Object.getPrototypeOf(Draggable)).call(this, props)); + // Works up the tree to the draggable itself attempting to match selector. + function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/ { + var node = el; + do { + if (matchesSelector(node, selector)) return true; + if (node === baseNode) return false; + node = node.parentNode; + } while (node); - _this.onDragStart = function (e, coreData) { - (0, _log2.default)('Draggable: onDragStart: %j', coreData); + return false; + } - // Short-circuit if user's callback killed it. - var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_this, coreData)); - // Kills start event on core as well, so move handlers are never bound. - if (shouldStart === false) return false; + function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { + if (!el) { + return; + } + if (el.attachEvent) { + el.attachEvent('on' + event, handler); + } else if (el.addEventListener) { + el.addEventListener(event, handler, true); + } else { + // $FlowIgnore: Doesn't think elements are indexable + el['on' + event] = handler; + } + } - _this.setState({ dragging: true, dragged: true }); - }; + function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { + if (!el) { + return; + } + if (el.detachEvent) { + el.detachEvent('on' + event, handler); + } else if (el.removeEventListener) { + el.removeEventListener(event, handler, true); + } else { + // $FlowIgnore: Doesn't think elements are indexable + el['on' + event] = null; + } + } - _this.onDrag = function (e, coreData) { - if (!_this.state.dragging) return false; - (0, _log2.default)('Draggable: onDrag: %j', coreData); + function outerHeight(node /*: HTMLElement*/) /*: number*/ { + // This is deliberately excluding margin for our calculations, since we are using + // offsetTop which is including margin. See getBoundPosition + var height = node.clientHeight; + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); + height += int(computedStyle.borderTopWidth); + height += int(computedStyle.borderBottomWidth); + return height; + } - var uiData = (0, _positionFns.createDraggableData)(_this, coreData); + function outerWidth(node /*: HTMLElement*/) /*: number*/ { + // This is deliberately excluding margin for our calculations, since we are using + // offsetLeft which is including margin. See getBoundPosition + var width = node.clientWidth; + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); + width += int(computedStyle.borderLeftWidth); + width += int(computedStyle.borderRightWidth); + return width; + } + function innerHeight(node /*: HTMLElement*/) /*: number*/ { + var height = node.clientHeight; + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); + height -= int(computedStyle.paddingTop); + height -= int(computedStyle.paddingBottom); + return height; + } - var newState /*: $Shape*/ = { - x: uiData.x, - y: uiData.y - }; + function innerWidth(node /*: HTMLElement*/) /*: number*/ { + var width = node.clientWidth; + var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); + width -= int(computedStyle.paddingLeft); + width -= int(computedStyle.paddingRight); + return width; + } - // Keep within bounds. - if (_this.props.bounds) { - // Save original x and y. - var _x = newState.x, - _y = newState.y; + // Get from offsetParent + function offsetXYFromParent(evt /*: {clientX: number, clientY: number}*/, offsetParent /*: HTMLElement*/) /*: ControlPosition*/ { + var isBody = offsetParent === offsetParent.ownerDocument.body; + var offsetParentRect = isBody ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); - // Add slack to the values used to calculate bound position. This will ensure that if - // we start removing slack, the element won't react to it right away until it's been - // completely removed. + var x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; + var y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; - newState.x += _this.state.slackX; - newState.y += _this.state.slackY; + return { x: x, y: y }; + } - // Get bound position. This will ceil/floor the x and y within the boundaries. + function createCSSTransform(_ref) /*: Object*/ { + var x = _ref.x, + y = _ref.y; - var _getBoundPosition = (0, _positionFns.getBoundPosition)(_this, newState.x, newState.y), - _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2), - newStateX = _getBoundPosition2[0], - newStateY = _getBoundPosition2[1]; - - newState.x = newStateX; - newState.y = newStateY; - - // Recalculate slack by noting how much was shaved by the boundPosition handler. - newState.slackX = _this.state.slackX + (_x - newState.x); - newState.slackY = _this.state.slackY + (_y - newState.y); - - // Update the event we fire to reflect what really happened after bounds took effect. - uiData.x = newState.x; - uiData.y = newState.y; - uiData.deltaX = newState.x - _this.state.x; - uiData.deltaY = newState.y - _this.state.y; - } - - // Short-circuit if user's callback killed it. - var shouldUpdate = _this.props.onDrag(e, uiData); - if (shouldUpdate === false) return false; - - _this.setState(newState); - }; - - _this.onDragStop = function (e, coreData) { - if (!_this.state.dragging) return false; - - // Short-circuit if user's callback killed it. - var shouldStop = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_this, coreData)); - if (shouldStop === false) return false; - - (0, _log2.default)('Draggable: onDragStop: %j', coreData); - - var newState /*: $Shape*/ = { - dragging: false, - slackX: 0, - slackY: 0 - }; - - // If this is a controlled component, the result of this operation will be to - // revert back to the old position. We expect a handler on `onDragStop`, at the least. - var controlled = Boolean(_this.props.position); - if (controlled) { - var _this$props$position = _this.props.position, - _x2 = _this$props$position.x, - _y2 = _this$props$position.y; - - newState.x = _x2; - newState.y = _y2; - } - - _this.setState(newState); - }; - - _this.state = { - // Whether or not we are currently dragging. - dragging: false, - - // Whether or not we have been dragged before. - dragged: false, - - // Current transform x and y. - x: props.position ? props.position.x : props.defaultPosition.x, - y: props.position ? props.position.y : props.defaultPosition.y, - - // Used for compensating for out-of-bounds drags - slackX: 0, slackY: 0, - - // Can only determine if SVG after mounting - isElementSVG: false - }; - return _this; - } - - _createClass(Draggable, [{ - key: 'componentWillMount', - value: function componentWillMount() { - if (this.props.position && !(this.props.onDrag || this.props.onStop)) { - // eslint-disable-next-line - console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); - } - } - }, { - key: 'componentDidMount', - value: function componentDidMount() { - // Check to see if the element passed is an instanceof SVGElement - if (typeof window.SVGElement !== 'undefined' && _reactDom2.default.findDOMNode(this) instanceof window.SVGElement) { - this.setState({ isElementSVG: true }); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps /*: Object*/) { - // Set x/y if position has changed - if (nextProps.position && (!this.props.position || nextProps.position.x !== this.props.position.x || nextProps.position.y !== this.props.position.y)) { - this.setState({ x: nextProps.position.x, y: nextProps.position.y }); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.setState({ dragging: false }); // prevents invariant if unmounted while dragging - } - }, { - key: 'render', - value: function render() /*: ReactElement*/ { - var _classNames; - - var style = {}, - svgTransform = null; - - // If this is controlled, we don't want to move it - unless it's dragging. - var controlled = Boolean(this.props.position); - var draggable = !controlled || this.state.dragging; - - var position = this.props.position || this.props.defaultPosition; - var transformOpts = { - // Set left if horizontal drag is enabled - x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : position.x, - - // Set top if vertical drag is enabled - y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : position.y - }; - - // If this element was SVG, we use the `transform` attribute. - if (this.state.isElementSVG) { - svgTransform = (0, _domFns.createSVGTransform)(transformOpts); - } else { - // Add a CSS transform to move the element around. This allows us to move the element around - // without worrying about whether or not it is relatively or absolutely positioned. - // If the item you are dragging already has a transform set, wrap it in a so - // has a clean slate. - style = (0, _domFns.createCSSTransform)(transformOpts); - } - - var _props = this.props, - defaultClassName = _props.defaultClassName, - defaultClassNameDragging = _props.defaultClassNameDragging, - defaultClassNameDragged = _props.defaultClassNameDragged; - - - var children = _react2.default.Children.only(this.props.children); - - // Mark with class while dragging - var className = (0, _classnames2.default)(children.props.className || '', defaultClassName, (_classNames = {}, _defineProperty(_classNames, defaultClassNameDragging, this.state.dragging), _defineProperty(_classNames, defaultClassNameDragged, this.state.dragged), _classNames)); - - // Reuse the child provided - // This makes it flexible to use whatever element is wanted (div, ul, etc) - return _react2.default.createElement( - _DraggableCore2.default, - _extends({}, this.props, { onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop }), - _react2.default.cloneElement(children, { - className: className, - style: _extends({}, children.props.style, style), - transform: svgTransform - }) - ); - } - }]); - - return Draggable; -}(_react2.default.Component); - -Draggable.displayName = 'Draggable'; -Draggable.propTypes = _extends({}, _DraggableCore2.default.propTypes, { - - /** - * `axis` determines which axis the draggable can move. - * - * Note that all callbacks will still return data as normal. This only - * controls flushing to the DOM. - * - * 'both' allows movement horizontally and vertically. - * 'x' limits movement to horizontal axis. - * 'y' limits movement to vertical axis. - * 'none' limits all movement. - * - * Defaults to 'both'. - */ - axis: _propTypes2.default.oneOf(['both', 'x', 'y', 'none']), - - /** - * `bounds` determines the range of movement available to the element. - * Available values are: - * - * 'parent' restricts movement within the Draggable's parent node. - * - * Alternatively, pass an object with the following properties, all of which are optional: - * - * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND} - * - * All values are in px. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
Content
- *
- * ); - * } - * }); - * ``` - */ - bounds: _propTypes2.default.oneOfType([_propTypes2.default.shape({ - left: _propTypes2.default.number, - right: _propTypes2.default.number, - top: _propTypes2.default.number, - bottom: _propTypes2.default.number - }), _propTypes2.default.string, _propTypes2.default.oneOf([false])]), - - defaultClassName: _propTypes2.default.string, - defaultClassNameDragging: _propTypes2.default.string, - defaultClassNameDragged: _propTypes2.default.string, - - /** - * `defaultPosition` specifies the x and y that the dragged item should start at - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I start with transformX: 25px and transformY: 25px;
- *
- * ); - * } - * }); - * ``` - */ - defaultPosition: _propTypes2.default.shape({ - x: _propTypes2.default.number, - y: _propTypes2.default.number - }), - - /** - * `position`, if present, defines the current position of the element. - * - * This is similar to how form elements in React work - if no `position` is supplied, the component - * is uncontrolled. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I start with transformX: 25px and transformY: 25px;
- *
- * ); - * } - * }); - * ``` - */ - position: _propTypes2.default.shape({ - x: _propTypes2.default.number, - y: _propTypes2.default.number - }), - - /** - * These properties should be defined on the child, not here. - */ - className: _shims.dontSetMe, - style: _shims.dontSetMe, - transform: _shims.dontSetMe -}); -Draggable.defaultProps = _extends({}, _DraggableCore2.default.defaultProps, { - axis: 'both', - bounds: false, - defaultClassName: 'react-draggable', - defaultClassNameDragging: 'react-draggable-dragging', - defaultClassNameDragged: 'react-draggable-dragged', - defaultPosition: { x: 0, y: 0 }, - position: null -}); -exports.default = Draggable; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var emptyFunction = __webpack_require__(1); -var invariant = __webpack_require__(2); -var warning = __webpack_require__(8); -var assign = __webpack_require__(15); - -var ReactPropTypesSecret = __webpack_require__(3); -var checkPropTypes = __webpack_require__(16); - -module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - } else if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - warning( - false, - 'You are manually calling a React.PropTypes validation ' + - 'function for the `%s` prop on `%s`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', - propFullName, - componentName - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction.thatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - warning( - false, - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received %s at index %s.', - getPostfixForTypeWarning(checker), - i - ); - return emptyFunction.thatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from - // props. - var allKeys = assign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - - -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); + // Replace unitless items with px + return defineProperty({}, browserPrefixToKey('transform', browserPrefix), 'translate(' + x + 'px,' + y + 'px)'); } - return Object(val); -} + function createSVGTransform(_ref3) /*: string*/ { + var x = _ref3.x, + y = _ref3.y; -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } + return 'translate(' + x + ',' + y + ')'; + } - // Detect buggy property enumeration order in older V8 versions. + function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { + return e.targetTouches && findInArray(e.targetTouches, function (t) { + return identifier === t.identifier; + }) || e.changedTouches && findInArray(e.changedTouches, function (t) { + return identifier === t.identifier; + }); + } - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } + function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/ { + if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; + if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; + } - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } + // User-select Hacks: + // + // Useful for preventing blue highlights all over everything when dragging. + + // Note we're passing `document` b/c we could be iframed + function addUserSelectStyles(doc /*: ?Document*/) { + if (!doc) return; + var styleEl = doc.getElementById('react-draggable-style-el'); + if (!styleEl) { + styleEl = doc.createElement('style'); + styleEl.type = 'text/css'; + styleEl.id = 'react-draggable-style-el'; + styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\n'; + styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; + doc.getElementsByTagName('head')[0].appendChild(styleEl); + } + if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); + } - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } + function removeUserSelectStyles(doc /*: ?Document*/) { + try { + if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); + // $FlowIgnore: IE + if (doc.selection) { + // $FlowIgnore: IE + doc.selection.empty(); + } else { + window.getSelection().removeAllRanges(); // remove selection caused by scroll + } + } catch (e) { + // probably IE + } + } + + function styleHacks() /*: Object*/ { + var childStyle /*: Object*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; + // Workaround IE pointer events; see #51 + // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 + return _extends({ + touchAction: 'none' + }, childStyle); } -} -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; + function addClassName(el /*: HTMLElement*/, className /*: string*/) { + if (el.classList) { + el.classList.add(className); + } else { + if (!el.className.match(new RegExp('(?:^|\\s)' + className + '(?!\\S)'))) { + el.className += ' ' + className; + } + } + } - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); + function removeClassName(el /*: HTMLElement*/, className /*: string*/) { + if (el.classList) { + el.classList.remove(className); + } else { + el.className = el.className.replace(new RegExp('(?:^|\\s)' + className + '(?!\\S)', 'g'), ''); + } + } - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } + /*:: import type Draggable from '../Draggable';*/ + /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/ + /*:: import type DraggableCore from '../DraggableCore';*/ + + + function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/ { + // If no bounds, short-circuit and move on + if (!draggable.props.bounds) return [x, y]; + + // Clone new bounds + var bounds = draggable.props.bounds; + + bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds); + var node = findDOMNode(draggable); + + if (typeof bounds === 'string') { + var ownerDocument = node.ownerDocument; + + var ownerWindow = ownerDocument.defaultView; + var boundNode = void 0; + if (bounds === 'parent') { + boundNode = node.parentNode; + } else { + boundNode = ownerDocument.querySelector(bounds); + } + if (!(boundNode instanceof ownerWindow.HTMLElement)) { + throw new Error('Bounds selector "' + bounds + '" could not find an element.'); + } + var nodeStyle = ownerWindow.getComputedStyle(node); + var boundNodeStyle = ownerWindow.getComputedStyle(boundNode); + // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. + bounds = { + left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft), + top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop), + right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft + int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight), + bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop + int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom) + }; + } + + // Keep x and y below right and bottom limits... + if (isNum(bounds.right)) x = Math.min(x, bounds.right); + if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom); + + // But above left and top limits. + if (isNum(bounds.left)) x = Math.max(x, bounds.left); + if (isNum(bounds.top)) y = Math.max(y, bounds.top); + + return [x, y]; + } - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } + function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/ { + var x = Math.round(pendingX / grid[0]) * grid[0]; + var y = Math.round(pendingY / grid[1]) * grid[1]; + return [x, y]; } - return to; -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - var invariant = __webpack_require__(2); - var warning = __webpack_require__(8); - var ReactPropTypesSecret = __webpack_require__(3); - var loggedTypeFailures = {}; -} - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ -function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (Object({"DRAGGABLE_DEBUG":undefined}).NODE_ENV !== 'production') { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]); - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); - } - } - } - } -} - -module.exports = checkPropTypes; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var emptyFunction = __webpack_require__(1); -var invariant = __webpack_require__(2); -var ReactPropTypesSecret = __webpack_require__(3); - -module.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; - } - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - - any: shim, - arrayOf: getShim, - element: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim, - exact: getShim - }; - - ReactPropTypes.checkPropTypes = emptyFunction; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - Copyright (c) 2016 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ -/* global define */ - -(function () { - 'use strict'; - - var hasOwn = {}.hasOwnProperty; - - function classNames () { - var classes = []; - - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (!arg) continue; - - var argType = typeof arg; - - if (argType === 'string' || argType === 'number') { - classes.push(arg); - } else if (Array.isArray(arg)) { - classes.push(classNames.apply(null, arg)); - } else if (argType === 'object') { - for (var key in arg) { - if (hasOwn.call(arg, key) && arg[key]) { - classes.push(key); - } - } - } - } + function canDragX(draggable /*: Draggable*/) /*: boolean*/ { + return draggable.props.axis === 'both' || draggable.props.axis === 'x'; + } - return classes.join(' '); + function canDragY(draggable /*: Draggable*/) /*: boolean*/ { + return draggable.props.axis === 'both' || draggable.props.axis === 'y'; } - if (typeof module !== 'undefined' && module.exports) { - module.exports = classNames; - } else if (true) { - // register as 'classnames', consistent with npm package name - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { - return classNames; - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else { - window.classNames = classNames; + // Get {x, y} positions from event. + function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { + var touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null; + if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch + var node = findDOMNode(draggableCore); + // User can provide an offsetParent if desired. + var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body; + return offsetXYFromParent(touchObj || e, offsetParent); } -}()); - - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getPrefix = getPrefix; -exports.browserPrefixToKey = browserPrefixToKey; -exports.browserPrefixToStyle = browserPrefixToStyle; -var prefixes = ['Moz', 'Webkit', 'O', 'ms']; -function getPrefix() /*: string*/ { - var prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform'; - - // Checking specifically for 'window.document' is for pseudo-browser server-side - // environments that define 'window' as the global context. - // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84) - if (typeof window === 'undefined' || typeof window.document === 'undefined') return ''; - - var style = window.document.documentElement.style; - - if (prop in style) return ''; - - for (var i = 0; i < prefixes.length; i++) { - if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i]; - } - - return ''; -} - -function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/ { - return prefix ? '' + prefix + kebabToTitleCase(prop) : prop; -} - -function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/ { - return prefix ? '-' + prefix.toLowerCase() + '-' + prop : prop; -} - -function kebabToTitleCase(str /*: string*/) /*: string*/ { - var out = ''; - var shouldCapitalize = true; - for (var i = 0; i < str.length; i++) { - if (shouldCapitalize) { - out += str[i].toUpperCase(); - shouldCapitalize = false; - } else if (str[i] === '-') { - shouldCapitalize = true; - } else { - out += str[i]; - } - } - return out; -} - -// Default export is the prefix itself, like 'Moz', 'Webkit', etc -// Note that you may have to re-test for certain things; for instance, Chrome 50 -// can handle unprefixed `transform`, but not unprefixed `user-select` -exports.default = getPrefix(); - -/***/ }), -/* 20 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }) -/******/ ]); -}); -//# sourceMappingURL=react-draggable.js.map \ No newline at end of file + + // Create an data object exposed by 's events + function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/ { + var state = draggable.state; + var isStart = !isNum(state.lastX); + var node = findDOMNode(draggable); + + if (isStart) { + // If this is our first move, use the x and y as last coords. + return { + node: node, + deltaX: 0, deltaY: 0, + lastX: x, lastY: y, + x: x, y: y + }; + } else { + // Otherwise calculate proper values. + return { + node: node, + deltaX: x - state.lastX, deltaY: y - state.lastY, + lastX: state.lastX, lastY: state.lastY, + x: x, y: y + }; + } + } + + // Create an data exposed by 's events + function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/ { + var scale = draggable.props.scale; + return { + node: coreData.node, + x: draggable.state.x + coreData.deltaX / scale, + y: draggable.state.y + coreData.deltaY / scale, + deltaX: coreData.deltaX / scale, + deltaY: coreData.deltaY / scale, + lastX: draggable.state.x, + lastY: draggable.state.y + }; + } + + // A lot faster than stringify/parse + function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/ { + return { + left: bounds.left, + top: bounds.top, + right: bounds.right, + bottom: bounds.bottom + }; + } + + function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/ { + var node = ReactDOM.findDOMNode(draggable); + if (!node) { + throw new Error(': Unmounted during event!'); + } + // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME + return node; + } + + /*eslint no-console:0*/ + function log() { + } + + /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/ + + + // Simple abstraction for dragging events names. + /*:: import type {Element as ReactElement} from 'react';*/ + var eventsFor = { + touch: { + start: 'touchstart', + move: 'touchmove', + stop: 'touchend' + }, + mouse: { + start: 'mousedown', + move: 'mousemove', + stop: 'mouseup' + } + }; + + // Default to mouse events. + var dragEventFor = eventsFor.mouse; + + /*:: type DraggableCoreState = { + dragging: boolean, + lastX: number, + lastY: number, + touchIdentifier: ?number + };*/ + /*:: export type DraggableBounds = { + left: number, + right: number, + top: number, + bottom: number, + };*/ + /*:: export type DraggableData = { + node: HTMLElement, + x: number, y: number, + deltaX: number, deltaY: number, + lastX: number, lastY: number, + };*/ + /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;*/ + /*:: export type ControlPosition = {x: number, y: number};*/ + + + // + // Define . + // + // is for advanced usage of . It maintains minimal internal state so it can + // work well with libraries that require more control over the element. + // + + /*:: export type DraggableCoreProps = { + allowAnyClick: boolean, + cancel: string, + children: ReactElement, + disabled: boolean, + enableUserSelectHack: boolean, + offsetParent: HTMLElement, + grid: [number, number], + handle: string, + onStart: DraggableEventHandler, + onDrag: DraggableEventHandler, + onStop: DraggableEventHandler, + onMouseDown: (e: MouseEvent) => void, + };*/ + + var DraggableCore = function (_React$Component) { + inherits(DraggableCore, _React$Component); + + function DraggableCore() { + var _ref; + + var _temp, _this, _ret; + + classCallCheck(this, DraggableCore); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = DraggableCore.__proto__ || Object.getPrototypeOf(DraggableCore)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + dragging: false, + // Used while dragging to determine deltas. + lastX: NaN, lastY: NaN, + touchIdentifier: null + }, _this.handleDragStart = function (e) { + // Make it possible to attach event handlers on top of this one. + _this.props.onMouseDown(e); + + // Only accept left-clicks. + if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; + + // Get nodes. Be sure to grab relative document (could be iframed) + var thisNode = ReactDOM.findDOMNode(_this); + if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) { + throw new Error(' not mounted on DragStart!'); + } + var ownerDocument = thisNode.ownerDocument; + + // Short circuit if handle or cancel prop was provided and selector doesn't match. + + if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !matchesSelectorAndParentsTo(e.target, _this.props.handle, thisNode) || _this.props.cancel && matchesSelectorAndParentsTo(e.target, _this.props.cancel, thisNode)) { + return; + } + + // Set touch identifier in component state if this is a touch event. This allows us to + // distinguish between individual touches on multitouch screens by identifying which + // touchpoint was set to this element. + var touchIdentifier = getTouchIdentifier(e); + _this.setState({ touchIdentifier: touchIdentifier }); + + // Get the current drag point from the event. This is used as the offset. + var position = getControlPosition(e, touchIdentifier, _this); + if (position == null) return; // not possible but satisfies flow + var x = position.x, + y = position.y; + + // Create an event object with all the data parents need to make a decision here. + + var coreEvent = createCoreData(_this, x, y); + + // Call event handler. If it returns explicit false, cancel. + log('calling', _this.props.onStart); + var shouldUpdate = _this.props.onStart(e, coreEvent); + if (shouldUpdate === false) return; + + // Add a style to the body to disable user-select. This prevents text from + // being selected all over the page. + if (_this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument); + + // Initiate dragging. Set the current x and y as offsets + // so we know how much we've moved during the drag. This allows us + // to drag elements around even if they have been moved, without issue. + _this.setState({ + dragging: true, + + lastX: x, + lastY: y + }); + + // Add events to the document directly so we catch when the user's mouse/touch moves outside of + // this element. We use different events depending on whether or not we have detected that this + // is a touch-capable device. + addEvent(ownerDocument, dragEventFor.move, _this.handleDrag); + addEvent(ownerDocument, dragEventFor.stop, _this.handleDragStop); + }, _this.handleDrag = function (e) { + + // Prevent scrolling on mobile devices, like ipad/iphone. + if (e.type === 'touchmove') e.preventDefault(); + + // Get the current drag point from the event. This is used as the offset. + var position = getControlPosition(e, _this.state.touchIdentifier, _this); + if (position == null) return; + var x = position.x, + y = position.y; + + // Snap to grid if prop has been provided + + if (Array.isArray(_this.props.grid)) { + var _deltaX = x - _this.state.lastX, + _deltaY = y - _this.state.lastY; + + var _snapToGrid = snapToGrid(_this.props.grid, _deltaX, _deltaY); + + var _snapToGrid2 = slicedToArray(_snapToGrid, 2); + + _deltaX = _snapToGrid2[0]; + _deltaY = _snapToGrid2[1]; + + if (!_deltaX && !_deltaY) return; // skip useless drag + x = _this.state.lastX + _deltaX, y = _this.state.lastY + _deltaY; + } + + var coreEvent = createCoreData(_this, x, y); + + // Call event handler. If it returns explicit false, trigger end. + var shouldUpdate = _this.props.onDrag(e, coreEvent); + if (shouldUpdate === false) { + try { + // $FlowIgnore + _this.handleDragStop(new MouseEvent('mouseup')); + } catch (err) { + // Old browsers + var event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/); + // I see why this insanity was deprecated + // $FlowIgnore + event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + _this.handleDragStop(event); + } + return; + } + + _this.setState({ + lastX: x, + lastY: y + }); + }, _this.handleDragStop = function (e) { + if (!_this.state.dragging) return; + + var position = getControlPosition(e, _this.state.touchIdentifier, _this); + if (position == null) return; + var x = position.x, + y = position.y; + + var coreEvent = createCoreData(_this, x, y); + + var thisNode = ReactDOM.findDOMNode(_this); + if (thisNode) { + // Remove user-select hack + if (_this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument); + } + + // Reset the el. + _this.setState({ + dragging: false, + lastX: NaN, + lastY: NaN + }); + + // Call event handler + _this.props.onStop(e, coreEvent); + + if (thisNode) { + removeEvent(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag); + removeEvent(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop); + } + }, _this.onMouseDown = function (e) { + dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse + + return _this.handleDragStart(e); + }, _this.onMouseUp = function (e) { + dragEventFor = eventsFor.mouse; + + return _this.handleDragStop(e); + }, _this.onTouchStart = function (e) { + // We're on a touch device now, so change the event handlers + dragEventFor = eventsFor.touch; + + return _this.handleDragStart(e); + }, _this.onTouchEnd = function (e) { + // We're on a touch device now, so change the event handlers + dragEventFor = eventsFor.touch; + + return _this.handleDragStop(e); + }, _temp), possibleConstructorReturn(_this, _ret); + } + + createClass(DraggableCore, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + // Remove any leftover event handlers. Remove both touch and mouse handlers in case + // some browser quirk caused a touch event to fire during a mouse move, or vice versa. + var thisNode = ReactDOM.findDOMNode(this); + if (thisNode) { + var ownerDocument = thisNode.ownerDocument; + + removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag); + removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag); + removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); + removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop); + if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument); + } + } + + // Same as onMouseDown (start drag), but now consider this a touch device. + + }, { + key: 'render', + value: function render() { + // Reuse the child provided + // This makes it flexible to use whatever element is wanted (div, ul, etc) + return React.cloneElement(React.Children.only(this.props.children), { + style: styleHacks(this.props.children.props.style), + + // Note: mouseMove handler is attached to document so it will still function + // when the user drags quickly and leaves the bounds of the element. + onMouseDown: this.onMouseDown, + onTouchStart: this.onTouchStart, + onMouseUp: this.onMouseUp, + onTouchEnd: this.onTouchEnd + }); + } + }]); + return DraggableCore; + }(React.Component); + + DraggableCore.displayName = 'DraggableCore'; + DraggableCore.propTypes = { + /** + * `allowAnyClick` allows dragging using any mouse button. + * By default, we only accept the left button. + * + * Defaults to `false`. + */ + allowAnyClick: propTypes.bool, + + /** + * `disabled`, if true, stops the from dragging. All handlers, + * with the exception of `onMouseDown`, will not fire. + */ + disabled: propTypes.bool, + + /** + * By default, we add 'user-select:none' attributes to the document body + * to prevent ugly text selection during drag. If this is causing problems + * for your app, set this to `false`. + */ + enableUserSelectHack: propTypes.bool, + + /** + * `offsetParent`, if set, uses the passed DOM node to compute drag offsets + * instead of using the parent node. + */ + offsetParent: function offsetParent(props /*: DraggableCoreProps*/, propName /*: $Keys*/) { + if (props[propName] && props[propName].nodeType !== 1) { + throw new Error('Draggable\'s offsetParent must be a DOM Node.'); + } + }, + + /** + * `grid` specifies the x and y that dragging should snap to. + */ + grid: propTypes.arrayOf(propTypes.number), + + /** + * `scale` specifies the scale of the area you are dragging inside of. It allows + * the drag deltas to scale correctly with how far zoomed in/out you are. + */ + scale: propTypes.number, + + /** + * `handle` specifies a selector to be used as the handle that initiates drag. + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return ( + * + *
+ *
Click me to drag
+ *
This is some other content
+ *
+ *
+ * ); + * } + * }); + * ``` + */ + handle: propTypes.string, + + /** + * `cancel` specifies a selector to be used to prevent drag initialization. + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return( + * + *
+ *
You can't drag from here
+ *
Dragging here works fine
+ *
+ *
+ * ); + * } + * }); + * ``` + */ + cancel: propTypes.string, + + /** + * Called when dragging starts. + * If this function returns the boolean false, dragging will be canceled. + */ + onStart: propTypes.func, + + /** + * Called while dragging. + * If this function returns the boolean false, dragging will be canceled. + */ + onDrag: propTypes.func, + + /** + * Called when dragging stops. + * If this function returns the boolean false, the drag will remain active. + */ + onStop: propTypes.func, + + /** + * A workaround option which can be passed if onMouseDown needs to be accessed, + * since it'll always be blocked (as there is internal use of onMouseDown) + */ + onMouseDown: propTypes.func, + + /** + * These properties should be defined on the child, not here. + */ + className: dontSetMe, + style: dontSetMe, + transform: dontSetMe + }; + DraggableCore.defaultProps = { + allowAnyClick: false, // by default only accept left click + cancel: null, + disabled: false, + enableUserSelectHack: true, + offsetParent: null, + handle: null, + grid: null, + transform: null, + onStart: function onStart() {}, + onDrag: function onDrag() {}, + onStop: function onStop() {}, + onMouseDown: function onMouseDown() {} + }; + + /*:: import type {DraggableEventHandler} from './utils/types';*/ + /*:: import type {Element as ReactElement} from 'react';*/ + /*:: type DraggableState = { + dragging: boolean, + dragged: boolean, + x: number, y: number, + slackX: number, slackY: number, + isElementSVG: boolean + };*/ + + + // + // Define + // + + /*:: export type DraggableProps = { + ...$Exact, + axis: 'both' | 'x' | 'y' | 'none', + bounds: DraggableBounds | string | false, + defaultClassName: string, + defaultClassNameDragging: string, + defaultClassNameDragged: string, + defaultPosition: ControlPosition, + position: ControlPosition, + scale: number + };*/ + + var Draggable = function (_React$Component) { + inherits(Draggable, _React$Component); + + function Draggable(props /*: DraggableProps*/) { + classCallCheck(this, Draggable); + + var _this = possibleConstructorReturn(this, (Draggable.__proto__ || Object.getPrototypeOf(Draggable)).call(this, props)); + + _this.onDragStart = function (e, coreData) { + + // Short-circuit if user's callback killed it. + var shouldStart = _this.props.onStart(e, createDraggableData(_this, coreData)); + // Kills start event on core as well, so move handlers are never bound. + if (shouldStart === false) return false; + + _this.setState({ dragging: true, dragged: true }); + }; + + _this.onDrag = function (e, coreData) { + if (!_this.state.dragging) return false; + + var uiData = createDraggableData(_this, coreData); + + var newState /*: $Shape*/ = { + x: uiData.x, + y: uiData.y + }; + + // Keep within bounds. + if (_this.props.bounds) { + // Save original x and y. + var _x = newState.x, + _y = newState.y; + + // Add slack to the values used to calculate bound position. This will ensure that if + // we start removing slack, the element won't react to it right away until it's been + // completely removed. + + newState.x += _this.state.slackX; + newState.y += _this.state.slackY; + + // Get bound position. This will ceil/floor the x and y within the boundaries. + + var _getBoundPosition = getBoundPosition(_this, newState.x, newState.y), + _getBoundPosition2 = slicedToArray(_getBoundPosition, 2), + newStateX = _getBoundPosition2[0], + newStateY = _getBoundPosition2[1]; + + newState.x = newStateX; + newState.y = newStateY; + + // Recalculate slack by noting how much was shaved by the boundPosition handler. + newState.slackX = _this.state.slackX + (_x - newState.x); + newState.slackY = _this.state.slackY + (_y - newState.y); + + // Update the event we fire to reflect what really happened after bounds took effect. + uiData.x = newState.x; + uiData.y = newState.y; + uiData.deltaX = newState.x - _this.state.x; + uiData.deltaY = newState.y - _this.state.y; + } + + // Short-circuit if user's callback killed it. + var shouldUpdate = _this.props.onDrag(e, uiData); + if (shouldUpdate === false) return false; + + _this.setState(newState); + }; + + _this.onDragStop = function (e, coreData) { + if (!_this.state.dragging) return false; + + // Short-circuit if user's callback killed it. + var shouldStop = _this.props.onStop(e, createDraggableData(_this, coreData)); + if (shouldStop === false) return false; + + var newState /*: $Shape*/ = { + dragging: false, + slackX: 0, + slackY: 0 + }; + + // If this is a controlled component, the result of this operation will be to + // revert back to the old position. We expect a handler on `onDragStop`, at the least. + var controlled = Boolean(_this.props.position); + if (controlled) { + var _this$props$position = _this.props.position, + _x2 = _this$props$position.x, + _y2 = _this$props$position.y; + + newState.x = _x2; + newState.y = _y2; + } + + _this.setState(newState); + }; + + _this.state = { + // Whether or not we are currently dragging. + dragging: false, + + // Whether or not we have been dragged before. + dragged: false, + + // Current transform x and y. + x: props.position ? props.position.x : props.defaultPosition.x, + y: props.position ? props.position.y : props.defaultPosition.y, + + // Used for compensating for out-of-bounds drags + slackX: 0, slackY: 0, + + // Can only determine if SVG after mounting + isElementSVG: false + }; + return _this; + } + + createClass(Draggable, [{ + key: 'componentWillMount', + value: function componentWillMount() { + if (this.props.position && !(this.props.onDrag || this.props.onStop)) { + // eslint-disable-next-line + console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); + } + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + // Check to see if the element passed is an instanceof SVGElement + if (typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) { + this.setState({ isElementSVG: true }); + } + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps /*: Object*/) { + // Set x/y if position has changed + if (nextProps.position && (!this.props.position || nextProps.position.x !== this.props.position.x || nextProps.position.y !== this.props.position.y)) { + this.setState({ x: nextProps.position.x, y: nextProps.position.y }); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.setState({ dragging: false }); // prevents invariant if unmounted while dragging + } + }, { + key: 'render', + value: function render() /*: ReactElement*/ { + var _classNames; + + var style = {}, + svgTransform = null; + + // If this is controlled, we don't want to move it - unless it's dragging. + var controlled = Boolean(this.props.position); + var draggable = !controlled || this.state.dragging; + + var position = this.props.position || this.props.defaultPosition; + var transformOpts = { + // Set left if horizontal drag is enabled + x: canDragX(this) && draggable ? this.state.x : position.x, + + // Set top if vertical drag is enabled + y: canDragY(this) && draggable ? this.state.y : position.y + }; + + // If this element was SVG, we use the `transform` attribute. + if (this.state.isElementSVG) { + svgTransform = createSVGTransform(transformOpts); + } else { + // Add a CSS transform to move the element around. This allows us to move the element around + // without worrying about whether or not it is relatively or absolutely positioned. + // If the item you are dragging already has a transform set, wrap it in a so + // has a clean slate. + style = createCSSTransform(transformOpts); + } + + var _props = this.props, + defaultClassName = _props.defaultClassName, + defaultClassNameDragging = _props.defaultClassNameDragging, + defaultClassNameDragged = _props.defaultClassNameDragged; + + + var children = React.Children.only(this.props.children); + + // Mark with class while dragging + var className = classnames(children.props.className || '', defaultClassName, (_classNames = {}, defineProperty(_classNames, defaultClassNameDragging, this.state.dragging), defineProperty(_classNames, defaultClassNameDragged, this.state.dragged), _classNames)); + + // Reuse the child provided + // This makes it flexible to use whatever element is wanted (div, ul, etc) + return React.createElement( + DraggableCore, + _extends({}, this.props, { onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop }), + React.cloneElement(children, { + className: className, + style: _extends({}, children.props.style, style), + transform: svgTransform + }) + ); + } + }]); + return Draggable; + }(React.Component); + + Draggable.displayName = 'Draggable'; + Draggable.propTypes = _extends({}, DraggableCore.propTypes, { + + /** + * `axis` determines which axis the draggable can move. + * + * Note that all callbacks will still return data as normal. This only + * controls flushing to the DOM. + * + * 'both' allows movement horizontally and vertically. + * 'x' limits movement to horizontal axis. + * 'y' limits movement to vertical axis. + * 'none' limits all movement. + * + * Defaults to 'both'. + */ + axis: propTypes.oneOf(['both', 'x', 'y', 'none']), + + /** + * `bounds` determines the range of movement available to the element. + * Available values are: + * + * 'parent' restricts movement within the Draggable's parent node. + * + * Alternatively, pass an object with the following properties, all of which are optional: + * + * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND} + * + * All values are in px. + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return ( + * + *
Content
+ *
+ * ); + * } + * }); + * ``` + */ + bounds: propTypes.oneOfType([propTypes.shape({ + left: propTypes.number, + right: propTypes.number, + top: propTypes.number, + bottom: propTypes.number + }), propTypes.string, propTypes.oneOf([false])]), + + defaultClassName: propTypes.string, + defaultClassNameDragging: propTypes.string, + defaultClassNameDragged: propTypes.string, + + /** + * `defaultPosition` specifies the x and y that the dragged item should start at + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return ( + * + *
I start with transformX: 25px and transformY: 25px;
+ *
+ * ); + * } + * }); + * ``` + */ + defaultPosition: propTypes.shape({ + x: propTypes.number, + y: propTypes.number + }), + + /** + * `position`, if present, defines the current position of the element. + * + * This is similar to how form elements in React work - if no `position` is supplied, the component + * is uncontrolled. + * + * Example: + * + * ```jsx + * let App = React.createClass({ + * render: function () { + * return ( + * + *
I start with transformX: 25px and transformY: 25px;
+ *
+ * ); + * } + * }); + * ``` + */ + position: propTypes.shape({ + x: propTypes.number, + y: propTypes.number + }), + + /** + * These properties should be defined on the child, not here. + */ + className: dontSetMe, + style: dontSetMe, + transform: dontSetMe + }); + Draggable.defaultProps = _extends({}, DraggableCore.defaultProps, { + axis: 'both', + bounds: false, + defaultClassName: 'react-draggable', + defaultClassNameDragging: 'react-draggable-dragging', + defaultClassNameDragged: 'react-draggable-dragged', + defaultPosition: { x: 0, y: 0 }, + position: null, + scale: 1 + }); + + // Previous versions of this lib exported as the root export. As to not break + // them, or TypeScript, we export *both* as the root and as 'default'. + // See https://github.com/mzabriskie/react-draggable/pull/254 + // and https://github.com/mzabriskie/react-draggable/issues/266 + Draggable.default = Draggable; + Draggable.DraggableCore = DraggableCore; + + return Draggable; + +}))); +//# sourceMappingURL=react-draggable.js.map diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 17d8391f..e618c128 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 33f74c03cddcdadf8186",".././lib/utils/shims.js",".././node_modules/fbjs/lib/emptyFunction.js",".././node_modules/fbjs/lib/invariant.js",".././node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}",".././lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}",".././node_modules/prop-types/index.js",".././node_modules/fbjs/lib/warning.js",".././lib/utils/positionFns.js",".././lib/DraggableCore.js",".././lib/utils/log.js",".././index.js",".././lib/Draggable.js",".././node_modules/prop-types/factoryWithTypeCheckers.js",".././node_modules/object-assign/index.js",".././node_modules/prop-types/checkPropTypes.js",".././node_modules/prop-types/factoryWithThrowingShims.js",".././node_modules/classnames/index.js",".././lib/utils/getPrefix.js",".././node_modules/process/browser.js"],"names":["findInArray","isFunction","isNum","int","dontSetMe","array","callback","i","length","apply","func","Object","prototype","toString","call","num","isNaN","a","parseInt","props","propName","componentName","Error","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","styleHacks","addClassName","removeClassName","matchesSelectorFunc","el","selector","method","baseNode","node","parentNode","event","handler","attachEvent","addEventListener","detachEvent","removeEventListener","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","width","clientWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","e","identifier","targetTouches","t","changedTouches","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","window","getSelection","removeAllRanges","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","grid","pendingX","pendingY","round","axis","touchIdentifier","draggableCore","touchObj","state","isStart","lastX","deltaX","deltaY","lastY","coreData","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","cloneElement","Children","only","children","style","Component","displayName","propTypes","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","log","Draggable","require","default","module","exports","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","oneOf","oneOfType","shape","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","prop","documentElement","prefix","kebabToTitleCase","toLowerCase","str","out","shouldCapitalize","toUpperCase"],"mappings":"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,MADW;AAExB9H,OAAG,oBAAU8H;AAFW,GAAhB,C;;AAKV;;;AAGAxG,6B;AACA+F,yB;AACAW;;AApHiBG,S,CAuHZF,Y,gBACF,wBAAcA,Y;AACjBpE,QAAM,M;AACNxB,UAAQ,K;AACRwH,oBAAkB,iB;AAClBC,4BAA0B,0B;AAC1BC,2BAAyB,yB;AACzBV,mBAAiB,EAACxJ,GAAG,CAAJ,EAAOG,GAAG,CAAV,E;AACjB6F,YAAU;;kBA/HOsC,S;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC7hBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA,SAAS;AACT;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF;AACA;AACA,CAAC;;;;;;;;;;;;;QC7CegC,S,GAAAA,S;QAiBAC,kB,GAAAA,kB;QAIAC,oB,GAAAA,oB;AAtBhB,IAAMC,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACO,SAASH,SAAT,gBAAqD;AAAA,MAAlCI,IAAkC,oFAArB,WAAqB;;AAC1D;AACA;AACA;AACA,MAAI,OAAOtJ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOyF,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;AAE7E,MAAMW,QAAQpG,OAAOyF,QAAP,CAAgB8D,eAAhB,CAAgCnD,KAA9C;;AAEA,MAAIkD,QAAQlD,KAAZ,EAAmB,OAAO,EAAP;;AAEnB,OAAK,IAAI/L,IAAI,CAAb,EAAgBA,IAAIgP,SAAS/O,MAA7B,EAAqCD,GAArC,EAA0C;AACxC,QAAI8O,mBAAmBG,IAAnB,EAAyBD,SAAShP,CAAT,CAAzB,KAAyC+L,KAA7C,EAAoD,OAAOiD,SAAShP,CAAT,CAAP;AACrD;;AAED,SAAO,EAAP;AACD;;AAEM,SAAS8O,kBAAT,CAA4BG,IAA5B,eAA0CE,MAA1C,4BAAkE;AACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBH,IAAjB,CAArB,GAAgDA,IAAvD;AACD;;AAEM,SAASF,oBAAT,CAA8BE,IAA9B,eAA4CE,MAA5C,4BAAoE;AACzE,SAAOA,eAAaA,OAAOE,WAAP,EAAb,SAAqCJ,IAArC,GAA8CA,IAArD;AACD;;AAED,SAASG,gBAAT,CAA0BE,GAA1B,4BAA+C;AAC7C,MAAIC,MAAM,EAAV;AACA,MAAIC,mBAAmB,IAAvB;AACA,OAAK,IAAIxP,IAAI,CAAb,EAAgBA,IAAIsP,IAAIrP,MAAxB,EAAgCD,GAAhC,EAAqC;AACnC,QAAIwP,gBAAJ,EAAsB;AACpBD,aAAOD,IAAItP,CAAJ,EAAOyP,WAAP,EAAP;AACAD,yBAAmB,KAAnB;AACD,KAHD,MAGO,IAAIF,IAAItP,CAAJ,MAAW,GAAf,EAAoB;AACzBwP,yBAAmB,IAAnB;AACD,KAFM,MAEA;AACLD,aAAOD,IAAItP,CAAJ,CAAP;AACD;AACF;AACD,SAAOuP,GAAP;AACD;;AAED;AACA;AACA;kBACeV,W;;;;;;AC9Cf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU","file":"./dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 33f74c03cddcdadf8186","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (process.browser === true && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 16\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 17\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 18\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 20\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","browserPrefix","createSVGTransform","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 7e8b9bac..68bbf756 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1 +1,2 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],factory):"object"==typeof exports?exports.ReactDraggable=factory(require("react-dom"),require("react")):root.ReactDraggable=factory(root.ReactDOM,root.React)}(this,function(__WEBPACK_EXTERNAL_MODULE_4__,__WEBPACK_EXTERNAL_MODULE_6__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=12)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.findInArray=function(array,callback){for(var i=0,length=array.length;i0&&void 0!==arguments[0]?arguments[0]:{};return _extends({touchAction:"none"},childStyle)},exports.addClassName=addClassName,exports.removeClassName=removeClassName;var _shims=__webpack_require__(0),_getPrefix=__webpack_require__(19),_getPrefix2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_getPrefix),matchesSelectorFunc=""},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;module.exports=__webpack_require__(14)(function(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE},!0)}else module.exports=__webpack_require__(17)()},function(module,exports,__webpack_require__){"use strict";var warning=__webpack_require__(1);if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV){warning=function(condition,format){if(void 0===format)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==format.indexOf("Failed Composite propType: ")&&!condition){for(var _len2=arguments.length,args=Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++)args[_key2-2]=arguments[_key2];(function(format){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var argIndex=0,message="Warning: "+format.replace(/%s/g,function(){return args[argIndex++]});"undefined"!=typeof console&&console.error(message);try{throw new Error(message)}catch(x){}}).apply(void 0,[format].concat(args))}}}module.exports=warning},function(module,exports,__webpack_require__){"use strict";function findDOMNode(draggable){var node=_reactDom2.default.findDOMNode(draggable);if(!node)throw new Error(": Unmounted during event!");return node}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBoundPosition=function(draggable,x,y){if(!draggable.props.bounds)return[x,y];var bounds=draggable.props.bounds;bounds="string"==typeof bounds?bounds:function(bounds){return{left:bounds.left,top:bounds.top,right:bounds.right,bottom:bounds.bottom}}(bounds);var node=findDOMNode(draggable);if("string"==typeof bounds){var ownerDocument=node.ownerDocument,ownerWindow=ownerDocument.defaultView,boundNode=void 0;if(!((boundNode="parent"===bounds?node.parentNode:ownerDocument.querySelector(bounds))instanceof HTMLElement))throw new Error('Bounds selector "'+bounds+'" could not find an element.');var nodeStyle=ownerWindow.getComputedStyle(node),boundNodeStyle=ownerWindow.getComputedStyle(boundNode);bounds={left:-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingLeft)+(0,_shims.int)(nodeStyle.marginLeft),top:-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingTop)+(0,_shims.int)(nodeStyle.marginTop),right:(0,_domFns.innerWidth)(boundNode)-(0,_domFns.outerWidth)(node)-node.offsetLeft+(0,_shims.int)(boundNodeStyle.paddingRight)-(0,_shims.int)(nodeStyle.marginRight),bottom:(0,_domFns.innerHeight)(boundNode)-(0,_domFns.outerHeight)(node)-node.offsetTop+(0,_shims.int)(boundNodeStyle.paddingBottom)-(0,_shims.int)(nodeStyle.marginBottom)}}return(0,_shims.isNum)(bounds.right)&&(x=Math.min(x,bounds.right)),(0,_shims.isNum)(bounds.bottom)&&(y=Math.min(y,bounds.bottom)),(0,_shims.isNum)(bounds.left)&&(x=Math.max(x,bounds.left)),(0,_shims.isNum)(bounds.top)&&(y=Math.max(y,bounds.top)),[x,y]},exports.snapToGrid=function(grid,pendingX,pendingY){return[Math.round(pendingX/grid[0])*grid[0],Math.round(pendingY/grid[1])*grid[1]]},exports.canDragX=function(draggable){return"both"===draggable.props.axis||"x"===draggable.props.axis},exports.canDragY=function(draggable){return"both"===draggable.props.axis||"y"===draggable.props.axis},exports.getControlPosition=function(e,touchIdentifier,draggableCore){var touchObj="number"==typeof touchIdentifier?(0,_domFns.getTouch)(e,touchIdentifier):null;if("number"==typeof touchIdentifier&&!touchObj)return null;var node=findDOMNode(draggableCore),offsetParent=draggableCore.props.offsetParent||node.offsetParent||node.ownerDocument.body;return(0,_domFns.offsetXYFromParent)(touchObj||e,offsetParent)},exports.createCoreData=function(draggable,x,y){var state=draggable.state,isStart=!(0,_shims.isNum)(state.lastX),node=findDOMNode(draggable);return isStart?{node:node,deltaX:0,deltaY:0,lastX:x,lastY:y,x:x,y:y}:{node:node,deltaX:x-state.lastX,deltaY:y-state.lastY,lastX:state.lastX,lastY:state.lastY,x:x,y:y}},exports.createDraggableData=function(draggable,coreData){return{node:coreData.node,x:draggable.state.x+coreData.deltaX,y:draggable.state.y+coreData.deltaY,deltaX:coreData.deltaX,deltaY:coreData.deltaY,lastX:draggable.state.x,lastY:draggable.state.y}};var _shims=__webpack_require__(0),_reactDom2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(4)),_domFns=__webpack_require__(5)},function(module,exports,__webpack_require__){"use strict";(function(process){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}Object.defineProperty(exports,"__esModule",{value:!0});var _slicedToArray=function(){return function(arr,i){if(Array.isArray(arr))return arr;if(Symbol.iterator in Object(arr))return function(arr,i){var _arr=[],_n=!0,_d=!1,_e=void 0;try{for(var _s,_i=arr[Symbol.iterator]();!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{!_n&&_i.return&&_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass=function(){function defineProperties(target,props){for(var i=0;i not mounted on DragStart!");var ownerDocument=thisNode.ownerDocument;if(!(_this.props.disabled||!(e.target instanceof ownerDocument.defaultView.Node)||_this.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.handle,thisNode)||_this.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(e.target,_this.props.cancel,thisNode))){var touchIdentifier=(0,_domFns.getTouchIdentifier)(e);_this.setState({touchIdentifier:touchIdentifier});var position=(0,_positionFns.getControlPosition)(e,touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDragStart: %j",coreEvent),(0,_log2.default)("calling",_this.props.onStart);!1!==_this.props.onStart(e,coreEvent)&&(_this.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(ownerDocument),_this.setState({dragging:!0,lastX:x,lastY:y}),(0,_domFns.addEvent)(ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.addEvent)(ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.handleDrag=function(e){"touchmove"===e.type&&e.preventDefault();var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y;if(Array.isArray(_this.props.grid)){var _deltaX=x-_this.state.lastX,_deltaY=y-_this.state.lastY,_snapToGrid=(0,_positionFns.snapToGrid)(_this.props.grid,_deltaX,_deltaY),_snapToGrid2=_slicedToArray(_snapToGrid,2);if(_deltaX=_snapToGrid2[0],_deltaY=_snapToGrid2[1],!_deltaX&&!_deltaY)return;x=_this.state.lastX+_deltaX,y=_this.state.lastY+_deltaY}var coreEvent=(0,_positionFns.createCoreData)(_this,x,y);(0,_log2.default)("DraggableCore: handleDrag: %j",coreEvent);if(!1!==_this.props.onDrag(e,coreEvent))_this.setState({lastX:x,lastY:y});else try{_this.handleDragStop(new MouseEvent("mouseup"))}catch(err){var event=document.createEvent("MouseEvents");event.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),_this.handleDragStop(event)}}},_this.handleDragStop=function(e){if(_this.state.dragging){var position=(0,_positionFns.getControlPosition)(e,_this.state.touchIdentifier,_this);if(null!=position){var x=position.x,y=position.y,coreEvent=(0,_positionFns.createCoreData)(_this,x,y),thisNode=_reactDom2.default.findDOMNode(_this);thisNode&&_this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(thisNode.ownerDocument),(0,_log2.default)("DraggableCore: handleDragStop: %j",coreEvent),_this.setState({dragging:!1,lastX:NaN,lastY:NaN}),_this.props.onStop(e,coreEvent),thisNode&&((0,_log2.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.move,_this.handleDrag),(0,_domFns.removeEvent)(thisNode.ownerDocument,dragEventFor.stop,_this.handleDragStop))}}},_this.onMouseDown=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStart(e)},_this.onMouseUp=function(e){return dragEventFor=eventsFor.mouse,_this.handleDragStop(e)},_this.onTouchStart=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStart(e)},_this.onTouchEnd=function(e){return dragEventFor=eventsFor.touch,_this.handleDragStop(e)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(DraggableCore,_react2.default.Component),_createClass(DraggableCore,[{key:"componentWillUnmount",value:function(){var thisNode=_reactDom2.default.findDOMNode(this);if(thisNode){var ownerDocument=thisNode.ownerDocument;(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(ownerDocument,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(ownerDocument,eventsFor.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(ownerDocument)}}},{key:"render",value:function(){return _react2.default.cloneElement(_react2.default.Children.only(this.props.children),{style:(0,_domFns.styleHacks)(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),DraggableCore}();DraggableCore.displayName="DraggableCore",DraggableCore.propTypes={allowAnyClick:_propTypes2.default.bool,disabled:_propTypes2.default.bool,enableUserSelectHack:_propTypes2.default.bool,offsetParent:function(props,propName){if(!0===process.browser&&props[propName]&&1!==props[propName].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes2.default.arrayOf(_propTypes2.default.number),handle:_propTypes2.default.string,cancel:_propTypes2.default.string,onStart:_propTypes2.default.func,onDrag:_propTypes2.default.func,onStop:_propTypes2.default.func,onMouseDown:_propTypes2.default.func,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe},DraggableCore.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}},exports.default=DraggableCore}).call(exports,__webpack_require__(20))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){}},function(module,exports,__webpack_require__){"use strict";var Draggable=__webpack_require__(13).default;module.exports=Draggable,module.exports.default=Draggable,module.exports.DraggableCore=__webpack_require__(10).default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&_reactDom2.default.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(nextProps){!nextProps.position||this.props.position&&nextProps.position.x===this.props.position.x&&nextProps.position.y===this.props.position.y||this.setState({x:nextProps.position.x,y:nextProps.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var _classNames,style={},svgTransform=null,draggable=!Boolean(this.props.position)||this.state.dragging,position=this.props.position||this.props.defaultPosition,transformOpts={x:(0,_positionFns.canDragX)(this)&&draggable?this.state.x:position.x,y:(0,_positionFns.canDragY)(this)&&draggable?this.state.y:position.y};this.state.isElementSVG?svgTransform=(0,_domFns.createSVGTransform)(transformOpts):style=(0,_domFns.createCSSTransform)(transformOpts);var _props=this.props,defaultClassName=_props.defaultClassName,defaultClassNameDragging=_props.defaultClassNameDragging,defaultClassNameDragged=_props.defaultClassNameDragged,children=_react2.default.Children.only(this.props.children),className=(0,_classnames2.default)(children.props.className||"",defaultClassName,(_classNames={},_defineProperty(_classNames,defaultClassNameDragging,this.state.dragging),_defineProperty(_classNames,defaultClassNameDragged,this.state.dragged),_classNames));return _react2.default.createElement(_DraggableCore2.default,_extends({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_react2.default.cloneElement(children,{className:className,style:_extends({},children.props.style,style),transform:svgTransform}))}}]),Draggable}();Draggable.displayName="Draggable",Draggable.propTypes=_extends({},_DraggableCore2.default.propTypes,{axis:_propTypes2.default.oneOf(["both","x","y","none"]),bounds:_propTypes2.default.oneOfType([_propTypes2.default.shape({left:_propTypes2.default.number,right:_propTypes2.default.number,top:_propTypes2.default.number,bottom:_propTypes2.default.number}),_propTypes2.default.string,_propTypes2.default.oneOf([!1])]),defaultClassName:_propTypes2.default.string,defaultClassNameDragging:_propTypes2.default.string,defaultClassNameDragged:_propTypes2.default.string,defaultPosition:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),position:_propTypes2.default.shape({x:_propTypes2.default.number,y:_propTypes2.default.number}),className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe}),Draggable.defaultProps=_extends({},_DraggableCore2.default.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null}),exports.default=Draggable},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(1),invariant=__webpack_require__(2),warning=__webpack_require__(8),assign=__webpack_require__(15),ReactPropTypesSecret=__webpack_require__(3),checkPropTypes=__webpack_require__(16);module.exports=function(isValidElement,throwOnDirectAccess){function is(x,y){return x===y?0!==x||1/x==1/y:x!=x&&y!=y}function PropTypeError(message){this.message=message,this.stack=""}function createChainableTypeChecker(validate){function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret)if(throwOnDirectAccess)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV&&"undefined"!=typeof console){var cacheKey=componentName+":"+propName;!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",propFullName,componentName),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++)}return null==props[propName]?isRequired?new PropTypeError(null===props[propName]?"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `null`.":"The "+location+" `"+propFullName+"` is marked as required in `"+componentName+"`, but its value is `undefined`."):null:validate(props,propName,componentName,location,propFullName)}if("production"!==Object({DRAGGABLE_DEBUG:void 0}).NODE_ENV)var manualPropTypeCallCache={},manualPropTypeWarningCount=0;var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName,secret){var propValue=props[propName];if(getPropType(propValue)!==expectedType)return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPreciseType(propValue)+"` supplied to `"+componentName+"`, expected `"+expectedType+"`.");return null})}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(null===propValue||isValidElement(propValue))return!0;var iteratorFn=function(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if("function"==typeof iteratorFn)return iteratorFn}(propValue);if(!iteratorFn)return!1;var step,iterator=iteratorFn.call(propValue);if(iteratorFn!==propValue.entries){for(;!(step=iterator.next()).done;)if(!isNode(step.value))return!1}else for(;!(step=iterator.next()).done;){var entry=step.value;if(entry&&!isNode(entry[1]))return!1}return!0;default:return!1}}function getPropType(propValue){var propType=typeof propValue;return Array.isArray(propValue)?"array":propValue instanceof RegExp?"object":function(propType,propValue){return"symbol"===propType||"Symbol"===propValue["@@toStringTag"]||"function"==typeof Symbol&&propValue instanceof Symbol}(propType,propValue)?"symbol":propType}function getPreciseType(propValue){if(void 0===propValue||null===propValue)return""+propValue;var propType=getPropType(propValue);if("object"===propType){if(propValue instanceof Date)return"date";if(propValue instanceof RegExp)return"regexp"}return propType}var ITERATOR_SYMBOL="function"==typeof Symbol&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ANONYMOUS="<>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createChainableTypeChecker(emptyFunction.thatReturnsNull),arrayOf:function(typeChecker){return createChainableTypeChecker(function(props,propName,componentName,location,propFullName){if("function"!=typeof typeChecker)return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue))return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+getPropType(propValue)+"` supplied to `"+componentName+"`, expected an array.");for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var style=window.document.documentElement.style;if(prop in style)return"";for(var i=0;i1)for(var i=1;i0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var I={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},V=I.mouse,W=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!P(e.target,o.props.handle,n)||o.props.cancel&&P(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=_(e,a,o);if(null!=i){var s=i.x,u=i.y,l=L(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&R(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,V.move,o.handleDrag),C(r,V.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=_(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=L(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=_(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=L(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&X(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,V.move,o.handleDrag),j(s.ownerDocument,V.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return V=I.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return V=I.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return V=I.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return V=I.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,I.mouse.move,this.handleDrag),j(n,I.touch.move,this.handleDrag),j(n,I.mouse.stop,this.handleDragStop),j(n,I.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&X(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);W.displayName="DraggableCore",W.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},W.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var B=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,A(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=A(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=Y(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,A(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},e}return T(r,n),D(r,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o,a,i={},s=null,u=!Boolean(this.props.position)||this.state.dragging,l=this.props.position||this.props.defaultPosition,c={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&u?this.state.x:l.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&u?this.state.y:l.y};this.state.isElementSVG?s="translate("+(a=c).x+","+a.y+")":(r=(n=c).x,o=n.y,i=x({},v("transform",w),"translate("+r+"px,"+o+"px)"));var p=this.props,d=p.defaultClassName,g=p.defaultClassNameDragging,h=p.defaultClassNameDragged,m=e.Children.only(this.props.children),y=f(m.props.className||"",d,(x(t={},g,this.state.dragging),x(t,h,this.state.dragged),t));return e.createElement(W,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(m,{className:y,style:O({},m.props.style,i),transform:s}))}}]),r}(e.Component);return B.displayName="Draggable",B.propTypes=O({},W.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),B.defaultProps=O({},W.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),B.default=B,B.DraggableCore=W,B}); +//# sourceMappingURL=react-draggable.min.js.map diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 2cacd00b..c4efc601 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap 33f74c03cddcdadf8186","../lib/utils/shims.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../lib/utils/domFns.js","../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../node_modules/prop-types/index.js","../node_modules/fbjs/lib/warning.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/utils/log.js","../index.js","../lib/Draggable.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/object-assign/index.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/getPrefix.js","../node_modules/process/browser.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_6__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","findInArray","array","callback","length","apply","isFunction","func","toString","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","DRAGGABLE_DEBUG","undefined","NODE_ENV","condition","b","e","f","error","args","argIndex","replace","framesToPop","matchesSelector","el","selector","matchesSelectorFunc","_shims","method","addClassName","className","classList","add","match","RegExp","removeClassName","remove","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","offsetParentRect","body","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","_ref","_defineProperty","_getPrefix","browserPrefixToKey","_getPrefix2","default","createSVGTransform","_ref3","getTouch","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","removeUserSelectStyles","window","getSelection","removeAllRanges","styleHacks","childStyle","arguments","_extends","touchAction","REACT_ELEMENT_TYPE","Symbol","for","$$typeof","warning","indexOf","_len2","Array","_key2","_len","_key","message","console","concat","findDOMNode","draggable","_reactDom2","getBoundPosition","bounds","right","bottom","cloneBounds","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","_domFns","marginRight","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","_positionFns","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","_this","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","_log2","onStart","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","isArray","_snapToGrid","_snapToGrid2","_slicedToArray","onDrag","MouseEvent","err","document","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","_react2","Component","cloneElement","Children","only","children","style","displayName","propTypes","_propTypes2","bool","process","browser","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","onDragStart","dragged","uiData","newState","slackX","slackY","_getBoundPosition","_getBoundPosition2","newStateX","newStateY","onDragStop","Boolean","_this$props$position","defaultPosition","isElementSVG","warn","SVGElement","nextProps","_classNames","svgTransform","transformOpts","_props","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","_classnames2","_DraggableCore2","oneOf","oneOfType","shape","invariant","assign","ReactPropTypesSecret","checkPropTypes","isValidElement","throwOnDirectAccess","is","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","location","propFullName","secret","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","bind","createPrimitiveTypeChecker","expectedType","propValue","getPropType","getPreciseType","isNode","every","iteratorFn","maybeIterable","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","step","iterator","entries","next","done","value","entry","propType","isSymbol","Date","ReactPropTypes","symbol","any","typeChecker","element","instanceOf","expectedClass","expectedClassName","constructor","getClassName","objectOf","key","expectedValues","JSON","stringify","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","shapeTypes","exact","allKeys","keys","PropTypes","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","shouldUseNative","source","from","symbols","to","val","TypeError","toObject","loggedTypeFailures","typeSpecs","values","getStack","typeSpecName","ex","shim","getShim","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","argType","push","hasOwn","getPrefix","prop","documentElement","prefixes","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","browserPrefixToStyle","toLowerCase","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","len","run","marker","cachedClearTimeout","clearTimeout","runClearTimeout","Item","noop","nextTick","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask"],"mappings":"CAAA,SAAAA,KAAAC,SACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,QAAAG,QAAA,aAAAA,QAAA,UACA,mBAAAC,QAAAA,OAAAC,IACAD,QAAA,YAAA,SAAAJ,SACA,iBAAAC,QACAA,QAAA,eAAAD,QAAAG,QAAA,aAAAA,QAAA,UAEAJ,KAAA,eAAAC,QAAAD,KAAA,SAAAA,KAAA,OARA,CASCO,KAAA,SAAAC,8BAAAC,+BACD,yBCNA,SAAAC,oBAAAC,UAGA,GAAAC,iBAAAD,UACA,OAAAC,iBAAAD,UAAAT,QAGA,IAAAC,OAAAS,iBAAAD,WACAE,EAAAF,SACAG,GAAA,EACAZ,YAUA,OANAa,QAAAJ,UAAAK,KAAAb,OAAAD,QAAAC,OAAAA,OAAAD,QAAAQ,qBAGAP,OAAAW,GAAA,EAGAX,OAAAD,QAvBA,IAAAU,oBA4DA,OAhCAF,oBAAAO,EAAAF,QAGAL,oBAAAQ,EAAAN,iBAGAF,oBAAAS,EAAA,SAAAjB,QAAAkB,KAAAC,QACAX,oBAAAY,EAAApB,QAAAkB,OACAG,OAAAC,eAAAtB,QAAAkB,MACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,UAMAX,oBAAAkB,EAAA,SAAAzB,QACA,IAAAkB,OAAAlB,QAAAA,OAAA0B,WACA,WAA2B,OAAA1B,OAAA,SAC3B,WAAiC,OAAAA,QAEjC,OADAO,oBAAAS,EAAAE,OAAA,IAAAA,QACAA,QAIAX,oBAAAY,EAAA,SAAAQ,OAAAC,UAAsD,OAAAR,OAAAS,UAAAC,eAAAjB,KAAAc,OAAAC,WAGtDrB,oBAAAwB,EAAA,GAGAxB,oBAAAA,oBAAAyB,EAAA,+HC3DgBC,YAAT,SAAqBC,MAA+BC,UACzD,IAAK,IAAIzB,EAAI,EAAG0B,OAASF,MAAME,OAAQ1B,EAAI0B,OAAQ1B,IACjD,GAAIyB,SAASE,MAAMF,UAAWD,MAAMxB,GAAIA,EAAGwB,QAAS,OAAOA,MAAMxB,YAIrD4B,WAAT,SAAoBC,MACzB,MAAuB,mBAATA,MAAgE,sBAAzCnB,OAAOS,UAAUW,SAAS3B,KAAK0B,eAGtDE,MAAT,SAAeC,KACpB,MAAsB,iBAARA,MAAqBC,MAAMD,cAG3BE,IAAT,SAAaC,GAClB,OAAOC,SAASD,EAAG,aAGLE,UAAT,SAAmBC,MAAeC,SAAkBC,eACzD,GAAIF,MAAMC,UACR,OAAO,IAAIE,MAAJ,gBAA0BF,SAA1B,cAAgDC,cAAhD,wGCXX,SAAAE,kBAAAC,KACA,OAAA,WACA,OAAAA,KASA,IAAAC,cAAA,aAEAA,cAAAC,YAAAH,kBACAE,cAAAE,iBAAAJ,mBAAA,GACAE,cAAAG,gBAAAL,mBAAA,GACAE,cAAAI,gBAAAN,kBAAA,MACAE,cAAAK,gBAAA,WACA,OAAAvD,MAEAkD,cAAAM,oBAAA,SAAAP,KACA,OAAAA,KAGArD,OAAAD,QAAAuD,yECdA,IAAAO,eAAA,SAAAC,UAEA,eAAA1C,QAAA2C,qBAAAC,IAAAC,WACAJ,eAAA,SAAAC,QACA,QAAAE,IAAAF,OACA,MAAA,IAAAX,MAAA,kDA0BAnD,OAAAD,QArBA,SAAAmE,UAAAJ,OAAAjB,EAAAsB,EAAApD,EAAAC,EAAAoD,EAAAC,GAGA,GAFAR,eAAAC,SAEAI,UAAA,CACA,IAAAI,MACA,QAAAN,IAAAF,OACAQ,MAAA,IAAAnB,MAAA,qIACK,CACL,IAAAoB,MAAA1B,EAAAsB,EAAApD,EAAAC,EAAAoD,EAAAC,GACAG,SAAA,GACAF,MAAA,IAAAnB,MAAAW,OAAAW,QAAA,MAAA,WACA,OAAAF,KAAAC,gBAEAvD,KAAA,sBAIA,MADAqD,MAAAI,YAAA,EACAJ,mECrCAtE,OAAAD,QAFA,yECTAC,OAAAD,QAAAM,yFCOO,SAASsE,gBAAgBC,GAAUC,UAgBxC,OAfKC,sBACHA,qBAAsB,EAAAC,OAAA9C,cACpB,UACA,wBACA,qBACA,oBACA,oBACC,SAAS+C,QAEV,OAAO,EAAAD,OAAAzC,YAAWsC,GAAGI,eAMpB,EAAAD,OAAAzC,YAAWsC,GAAGE,uBAGZF,GAAGE,qBAAqBD,UA6I1B,SAASI,aAAaL,GAAiBM,WACxCN,GAAGO,UACLP,GAAGO,UAAUC,IAAIF,WAEZN,GAAGM,UAAUG,MAAM,IAAIC,OAAJ,YAAuBJ,UAAvB,cACtBN,GAAGM,WAAH,IAAoBA,WAKnB,SAASK,gBAAgBX,GAAiBM,WAC3CN,GAAGO,UACLP,GAAGO,UAAUK,OAAON,WAEpBN,GAAGM,UAAYN,GAAGM,UAAUT,QAAQ,IAAIa,OAAJ,YAAuBJ,UAAvB,UAA2C,KAAM,6RA9KzEP,gBAAAA,wBAuBAc,4BAAT,SAAqCb,GAAUC,SAAkBa,UACtE,IAAIC,KAAOf,GACX,EAAG,CACD,GAAID,gBAAgBgB,KAAMd,UAAW,OAAO,EAC5C,GAAIc,OAASD,SAAU,OAAO,EAC9BC,KAAOA,KAAKC,iBACLD,MAET,OAAO,WAGOE,SAAT,SAAkBjB,GAAWkB,MAAeC,SAC5CnB,KACDA,GAAGoB,YACLpB,GAAGoB,YAAY,KAAOF,MAAOC,SACpBnB,GAAGqB,iBACZrB,GAAGqB,iBAAiBH,MAAOC,SAAS,GAGpCnB,GAAG,KAAOkB,OAASC,kBAIPG,YAAT,SAAqBtB,GAAWkB,MAAeC,SAC/CnB,KACDA,GAAGuB,YACLvB,GAAGuB,YAAY,KAAOL,MAAOC,SACpBnB,GAAGwB,oBACZxB,GAAGwB,oBAAoBN,MAAOC,SAAS,GAGvCnB,GAAG,KAAOkB,OAAS,eAIPO,YAAT,SAAqBV,MAG1B,IAAIW,OAASX,KAAKY,aACZC,cAAgBb,KAAKc,cAAcC,YAAYC,iBAAiBhB,MAGtE,OAFAW,SAAU,EAAAvB,OAAAnC,KAAI4D,cAAcI,gBAC5BN,SAAU,EAAAvB,OAAAnC,KAAI4D,cAAcK,4BAIdC,WAAT,SAAoBnB,MAGzB,IAAIoB,MAAQpB,KAAKqB,YACXR,cAAgBb,KAAKc,cAAcC,YAAYC,iBAAiBhB,MAGtE,OAFAoB,QAAS,EAAAhC,OAAAnC,KAAI4D,cAAcS,iBAC3BF,QAAS,EAAAhC,OAAAnC,KAAI4D,cAAcU,2BAGbC,YAAT,SAAqBxB,MAC1B,IAAIW,OAASX,KAAKY,aACZC,cAAgBb,KAAKc,cAAcC,YAAYC,iBAAiBhB,MAGtE,OAFAW,SAAU,EAAAvB,OAAAnC,KAAI4D,cAAcY,YAC5Bd,SAAU,EAAAvB,OAAAnC,KAAI4D,cAAca,wBAIdC,WAAT,SAAoB3B,MACzB,IAAIoB,MAAQpB,KAAKqB,YACXR,cAAgBb,KAAKc,cAAcC,YAAYC,iBAAiBhB,MAGtE,OAFAoB,QAAS,EAAAhC,OAAAnC,KAAI4D,cAAce,aAC3BR,QAAS,EAAAhC,OAAAnC,KAAI4D,cAAcgB,uBAKbC,mBAAT,SAA4BC,IAAyCC,cAC1E,IACMC,iBADSD,eAAiBA,aAAalB,cAAcoB,MACxBC,KAAM,EAAGC,IAAK,GAAKJ,aAAaK,wBAKnE,OAAQC,EAHEP,IAAIQ,QAAUP,aAAaQ,WAAaP,iBAAiBE,KAGxDM,EAFDV,IAAIW,QAAUV,aAAaW,UAAYV,iBAAiBG,cAKpDQ,mBAAT,SAAAC,MAAoE,IAAvCP,EAAuCO,KAAvCP,EAAGG,EAAoCI,KAApCJ,EAErC,2JAAAK,KAAS,EAAAC,WAAAC,oBAAmB,YAAnBC,YAAAC,SAAiD,aAAeZ,EAAI,MAAQG,EAAI,gBAG3EU,mBAAT,SAAAC,OACL,MAAO,aADkEA,MAAvCd,EACR,IAD+Cc,MAApCX,EACD,aAGtBY,SAAT,SAAkB5E,EAAoB6E,YAC3C,OAAQ7E,EAAE8E,gBAAiB,EAAAnE,OAAA9C,aAAYmC,EAAE8E,cAAe,SAAAC,GAAA,OAAKF,aAAeE,EAAEF,cACtE7E,EAAEgF,iBAAkB,EAAArE,OAAA9C,aAAYmC,EAAEgF,eAAgB,SAAAD,GAAA,OAAKF,aAAeE,EAAEF,sBAGlEI,mBAAT,SAA4BjF,GACjC,OAAIA,EAAE8E,eAAiB9E,EAAE8E,cAAc,GAAW9E,EAAE8E,cAAc,GAAGD,WACjE7E,EAAEgF,gBAAkBhF,EAAEgF,eAAe,GAAWhF,EAAEgF,eAAe,GAAGH,gBAAxE,WAQcK,oBAAT,SAA6BC,KAClC,GAAKA,IAAL,CACA,IAAIC,QAAUD,IAAIE,eAAe,4BAC5BD,WACHA,QAAUD,IAAIG,cAAc,UACpBC,KAAO,WACfH,QAAQI,GAAK,2BACbJ,QAAQK,UAAY,wFACpBL,QAAQK,WAAa,mFACrBN,IAAIO,qBAAqB,QAAQ,GAAGC,YAAYP,UAE9CD,IAAI1B,MAAM5C,aAAasE,IAAI1B,KAAM,mDAGvBmC,uBAAT,SAAgCT,KACrC,IACMA,KAAOA,IAAI1B,MAAMtC,gBAAgBgE,IAAI1B,KAAM,yCAC/CoC,OAAOC,eAAeC,kBACtB,MAAO/F,cAKKgG,WAAT,WAAqD,IAAjCC,WAAiCC,UAAAlI,OAAA,QAAA4B,IAAAsG,UAAA,GAAAA,UAAA,MAG1D,OAAAC,UACEC,YAAa,QACVH,qBAISpF,aAAAA,qBAUAM,gBAAAA,gBAhLhB,IAAAR,OAAAxE,oBAAA,GACAmI,WAAAnI,oBAAA,wFAIIuE,oBAAsB,6BCN1B9E,OAAAD,QAAAO,4ECOA,GAAA,eAAAc,QAAA2C,qBAAAC,IAAAC,SAAA,CACA,IAAAwG,mBAAA,mBAAAC,QACAA,OAAAC,KACAD,OAAAC,IAAA,kBACA,MAWA3K,OAAAD,QAAAQ,oBAAA,GAAAA,CATA,SAAAoB,QACA,MAAA,iBAAAA,QACA,OAAAA,QACAA,OAAAiJ,WAAAH,qBAKA,QAKAzK,OAAAD,QAAAQ,oBAAA,GAAAA,8DChBA,IASAsK,QATAtK,oBAAA,GAWA,GAAA,eAAAa,QAAA2C,qBAAAC,IAAAC,SAAA,CAqBA4G,QAAA,SAAA3G,UAAAJ,QACA,QAAAE,IAAAF,OACA,MAAA,IAAAX,MAAA,6EAGA,GAAA,IAAAW,OAAAgH,QAAA,iCAIA5G,UAAA,CACA,IAAA,IAAA6G,MAAAT,UAAAlI,OAAAmC,KAAAyG,MAAAD,MAAA,EAAAA,MAAA,EAAA,GAAAE,MAAA,EAA4FA,MAAAF,MAAeE,QAC3G1G,KAAA0G,MAAA,GAAAX,UAAAW,QA/BA,SAAAnH,QACA,IAAA,IAAAoH,KAAAZ,UAAAlI,OAAAmC,KAAAyG,MAAAE,KAAA,EAAAA,KAAA,EAAA,GAAAC,KAAA,EAAsFA,KAAAD,KAAaC,OACnG5G,KAAA4G,KAAA,GAAAb,UAAAa,MAGA,IAAA3G,SAAA,EACA4G,QAAA,YAAAtH,OAAAW,QAAA,MAAA,WACA,OAAAF,KAAAC,cAEA,oBAAA6G,SACAA,QAAA/G,MAAA8G,SAEA,IAIA,MAAA,IAAAjI,MAAAiI,SACK,MAAAnD,OAiBL5F,WAAA2B,GAAAF,QAAAwH,OAAA/G,SAKAvE,OAAAD,QAAA8K,mECiEA,SAASU,YAAYC,WACnB,IAAM7F,KAAO8F,WAAA5C,QAAS0C,YAAYC,WAClC,IAAK7F,KACH,MAAM,IAAIxC,MAAM,4CAGlB,OAAOwC,oEA3HO+F,iBAAT,SAA0BF,UAAsBvD,EAAWG,GAEhE,IAAKoD,UAAUxI,MAAM2I,OAAQ,OAAQ1D,EAAGG,GAFqD,IAKxFuD,OAAUH,UAAUxI,MAApB2I,OACLA,OAA2B,iBAAXA,OAAsBA,OAsGxC,SAAqBA,QACnB,OACE7D,KAAM6D,OAAO7D,KACbC,IAAK4D,OAAO5D,IACZ6D,MAAOD,OAAOC,MACdC,OAAQF,OAAOE,QA3G8BC,CAAYH,QAC3D,IAAMhG,KAAO4F,YAAYC,WAEzB,GAAsB,iBAAXG,OAAqB,CAAA,IACvBlF,cAAiBd,KAAjBc,cACDsF,YAActF,cAAcC,YAC9BsF,eAAAA,EAMJ,MAJEA,UADa,WAAXL,OACUhG,KAAKC,WAELa,cAAcwF,cAAcN,mBAEfO,aACzB,MAAM,IAAI/I,MAAM,oBAAsBwI,OAAS,gCAEjD,IAAMQ,UAAYJ,YAAYpF,iBAAiBhB,MACzCyG,eAAiBL,YAAYpF,iBAAiBqF,WAEpDL,QACE7D,MAAOnC,KAAK0G,YAAa,EAAAtH,OAAAnC,KAAIwJ,eAAe7E,cAAe,EAAAxC,OAAAnC,KAAIuJ,UAAUG,YACzEvE,KAAMpC,KAAK4G,WAAY,EAAAxH,OAAAnC,KAAIwJ,eAAehF,aAAc,EAAArC,OAAAnC,KAAIuJ,UAAUK,WACtEZ,OAAO,EAAAa,QAAAnF,YAAW0E,YAAa,EAAAS,QAAA3F,YAAWnB,MAAQA,KAAK0G,YACrD,EAAAtH,OAAAnC,KAAIwJ,eAAe5E,eAAgB,EAAAzC,OAAAnC,KAAIuJ,UAAUO,aACnDb,QAAQ,EAAAY,QAAAtF,aAAY6E,YAAa,EAAAS,QAAApG,aAAYV,MAAQA,KAAK4G,WACxD,EAAAxH,OAAAnC,KAAIwJ,eAAe/E,gBAAiB,EAAAtC,OAAAnC,KAAIuJ,UAAUQ,eAYxD,OAPI,EAAA5H,OAAAtC,OAAMkJ,OAAOC,SAAQ3D,EAAI2E,KAAKC,IAAI5E,EAAG0D,OAAOC,SAC5C,EAAA7G,OAAAtC,OAAMkJ,OAAOE,UAASzD,EAAIwE,KAAKC,IAAIzE,EAAGuD,OAAOE,UAG7C,EAAA9G,OAAAtC,OAAMkJ,OAAO7D,QAAOG,EAAI2E,KAAKE,IAAI7E,EAAG0D,OAAO7D,QAC3C,EAAA/C,OAAAtC,OAAMkJ,OAAO5D,OAAMK,EAAIwE,KAAKE,IAAI1E,EAAGuD,OAAO5D,OAEtCE,EAAGG,YAGG2E,WAAT,SAAoBC,KAAwBC,SAAkBC,UAGnE,OAFUN,KAAKO,MAAMF,SAAWD,KAAK,IAAMA,KAAK,GACtCJ,KAAKO,MAAMD,SAAWF,KAAK,IAAMA,KAAK,aAIlCI,SAAT,SAAkB5B,WACvB,MAAgC,SAAzBA,UAAUxI,MAAMqK,MAA4C,MAAzB7B,UAAUxI,MAAMqK,cAG5CC,SAAT,SAAkB9B,WACvB,MAAgC,SAAzBA,UAAUxI,MAAMqK,MAA4C,MAAzB7B,UAAUxI,MAAMqK,cAI5CE,mBAAT,SAA4BnJ,EAAoBoJ,gBAA0BC,eAC/E,IAAMC,SAAsC,iBAApBF,iBAA+B,EAAAf,QAAAzD,UAAS5E,EAAGoJ,iBAAmB,KACtF,GAA+B,iBAApBA,kBAAiCE,SAAU,OAAO,KAC7D,IAAM/H,KAAO4F,YAAYkC,eAEnB9F,aAAe8F,cAAczK,MAAM2E,cAAgBhC,KAAKgC,cAAgBhC,KAAKc,cAAcoB,KACjG,OAAO,EAAA4E,QAAAhF,oBAAmBiG,UAAYtJ,EAAGuD,uBAI3BgG,eAAT,SAAwBnC,UAA0BvD,EAAWG,GAClE,IAAMwF,MAAQpC,UAAUoC,MAClBC,UAAW,EAAA9I,OAAAtC,OAAMmL,MAAME,OACvBnI,KAAO4F,YAAYC,WAEzB,OAAIqC,SAGAlI,KAAAA,KACAoI,OAAQ,EAAGC,OAAQ,EACnBF,MAAO7F,EAAGgG,MAAO7F,EACjBH,EAAAA,EAAGG,EAAAA,IAKHzC,KAAAA,KACAoI,OAAQ9F,EAAI2F,MAAME,MAAOE,OAAQ5F,EAAIwF,MAAMK,MAC3CH,MAAOF,MAAME,MAAOG,MAAOL,MAAMK,MACjChG,EAAAA,EAAGG,EAAAA,YAMO8F,oBAAT,SAA6B1C,UAAsB2C,UACxD,OACExI,KAAMwI,SAASxI,KACfsC,EAAGuD,UAAUoC,MAAM3F,EAAIkG,SAASJ,OAChC3F,EAAGoD,UAAUoC,MAAMxF,EAAI+F,SAASH,OAChCD,OAAQI,SAASJ,OACjBC,OAAQG,SAASH,OACjBF,MAAOtC,UAAUoC,MAAM3F,EACvBgG,MAAOzC,UAAUoC,MAAMxF,IA/G3B,IAAArD,OAAAxE,oBAAA,0EACAA,oBAAA,IACAkM,QAAAlM,oBAAA,45CCFAA,oBAAA,uCACAA,oBAAA,sCACAA,oBAAA,IACAkM,QAAAlM,oBAAA,GAEA6N,aAAA7N,oBAAA,GACAwE,OAAAxE,oBAAA,gCACAA,oBAAA,KAMM8N,WACJC,OACEC,MAAO,aACPC,KAAM,YACNC,KAAM,YAERC,OACEH,MAAO,YACPC,KAAM,YACNC,KAAM,YAKNE,aAAeN,UAAUK,MAiDRE,sfAoInBhB,OACEiB,UAAU,EAEVf,MAAOgB,IAAKb,MAAOa,IACnBtB,gBAAiB,YAiBnBuB,gBAAiD,SAAC3K,GAKhD,GAHA4K,MAAKhM,MAAMiM,YAAY7K,IAGlB4K,MAAKhM,MAAMkM,eAAqC,iBAAb9K,EAAE+K,QAAoC,IAAb/K,EAAE+K,OAAc,OAAO,EAGxF,IAAMC,SAAW3D,WAAA5C,QAAS0C,YAATyD,OACjB,IAAKI,WAAaA,SAAS3I,gBAAkB2I,SAAS3I,cAAcoB,KAClE,MAAM,IAAI1E,MAAM,6CAVoC,IAY/CsD,cAAiB2I,SAAjB3I,cAGP,KAAIuI,MAAKhM,MAAMqM,YACVjL,EAAEkL,kBAAkB7I,cAAcC,YAAY6I,OAChDP,MAAKhM,MAAMwM,UAAW,EAAA/C,QAAAhH,6BAA4BrB,EAAEkL,OAAQN,MAAKhM,MAAMwM,OAAQJ,WAC/EJ,MAAKhM,MAAMyM,SAAU,EAAAhD,QAAAhH,6BAA4BrB,EAAEkL,OAAQN,MAAKhM,MAAMyM,OAAQL,WAHjF,CAUA,IAAM5B,iBAAkB,EAAAf,QAAApD,oBAAmBjF,GAC3C4K,MAAKU,UAAUlC,gBAAAA,kBAGf,IAAMmC,UAAW,EAAAvB,aAAAb,oBAAmBnJ,EAAGoJ,gBAAtBwB,OACjB,GAAgB,MAAZW,SAAJ,CA9BsD,IA+B/C1H,EAAQ0H,SAAR1H,EAAGG,EAAKuH,SAALvH,EAGJwH,WAAY,EAAAxB,aAAAT,gBAAAqB,MAAqB/G,EAAGG,IAE1C,EAAAyH,MAAAhH,SAAI,qCAAsC+G,YAG1C,EAAAC,MAAAhH,SAAI,UAAWmG,MAAKhM,MAAM8M,UAEL,IADAd,MAAKhM,MAAM8M,QAAQ1L,EAAGwL,aAKvCZ,MAAKhM,MAAM+M,uBAAsB,EAAAtD,QAAAnD,qBAAoB7C,eAKzDuI,MAAKU,UACHb,UAAU,EAEVf,MAAO7F,EACPgG,MAAO7F,KAMT,EAAAqE,QAAA5G,UAASY,cAAekI,aAAaH,KAAMQ,MAAKgB,aAChD,EAAAvD,QAAA5G,UAASY,cAAekI,aAAaF,KAAMO,MAAKiB,0BAGlDD,WAA4C,SAAC5L,GAG5B,cAAXA,EAAEuF,MAAsBvF,EAAE8L,iBAG9B,IAAMP,UAAW,EAAAvB,aAAAb,oBAAmBnJ,EAAG4K,MAAKpB,MAAMJ,gBAAjCwB,OACjB,GAAgB,MAAZW,SAAJ,CAPiD,IAQ5C1H,EAAQ0H,SAAR1H,EAAGG,EAAKuH,SAALvH,EAGR,GAAI4C,MAAMmF,QAAQnB,MAAKhM,MAAMgK,MAAO,CAClC,IAAIe,QAAS9F,EAAI+G,MAAKpB,MAAME,MAAOE,QAAS5F,EAAI4G,MAAKpB,MAAMK,MADzBmC,aAEf,EAAAhC,aAAArB,YAAWiC,MAAKhM,MAAMgK,KAAMe,QAAQC,SAFrBqC,aAAAC,eAAAF,YAAA,GAGlC,GADCrC,QAFiCsC,aAAA,GAEzBrC,QAFyBqC,aAAA,IAG7BtC,UAAWC,QAAQ,OACxB/F,EAAI+G,MAAKpB,MAAME,MAAQC,QAAQ3F,EAAI4G,MAAKpB,MAAMK,MAAQD,QAGxD,IAAM4B,WAAY,EAAAxB,aAAAT,gBAAAqB,MAAqB/G,EAAGG,IAE1C,EAAAyH,MAAAhH,SAAI,gCAAiC+G,WAIrC,IAAqB,IADAZ,MAAKhM,MAAMuN,OAAOnM,EAAGwL,WAgB1CZ,MAAKU,UACH5B,MAAO7F,EACPgG,MAAO7F,SAhBP,IAEE4G,MAAKiB,eAAe,IAAIO,WAAW,YACnC,MAAOC,KAEP,IAAM3K,MAAU4K,SAASC,YAAY,eAGrC7K,MAAM8K,eAAe,WAAW,GAAM,EAAM3G,OAAQ,EAAG,EAAG,EAAG,EAAG,GAAG,GAAO,GAAO,GAAO,EAAO,EAAG,MAClG+E,MAAKiB,eAAenK,gBAW1BmK,eAAgD,SAAC7L,GAC/C,GAAK4K,MAAKpB,MAAMiB,SAAhB,CAEA,IAAMc,UAAW,EAAAvB,aAAAb,oBAAmBnJ,EAAG4K,MAAKpB,MAAMJ,gBAAjCwB,OACjB,GAAgB,MAAZW,SAAJ,CAJqD,IAK9C1H,EAAQ0H,SAAR1H,EAAGG,EAAKuH,SAALvH,EACJwH,WAAY,EAAAxB,aAAAT,gBAAAqB,MAAqB/G,EAAGG,GAEpCgH,SAAW3D,WAAA5C,QAAS0C,YAATyD,OACbI,UAEEJ,MAAKhM,MAAM+M,uBAAsB,EAAAtD,QAAAzC,wBAAuBoF,SAAS3I,gBAGvE,EAAAoJ,MAAAhH,SAAI,oCAAqC+G,WAGzCZ,MAAKU,UACHb,UAAU,EACVf,MAAOgB,IACPb,MAAOa,MAITE,MAAKhM,MAAM6N,OAAOzM,EAAGwL,WAEjBR,YAEF,EAAAS,MAAAhH,SAAI,qCACJ,EAAA4D,QAAAvG,aAAYkJ,SAAS3I,cAAekI,aAAaH,KAAMQ,MAAKgB,aAC5D,EAAAvD,QAAAvG,aAAYkJ,SAAS3I,cAAekI,aAAaF,KAAMO,MAAKiB,0BAIhEhB,YAA6C,SAAC7K,GAG5C,OAFAuK,aAAeN,UAAUK,MAElBM,MAAKD,gBAAgB3K,UAG9B0M,UAA2C,SAAC1M,GAG1C,OAFAuK,aAAeN,UAAUK,MAElBM,MAAKiB,eAAe7L,UAI7B2M,aAA8C,SAAC3M,GAI7C,OAFAuK,aAAeN,UAAUC,MAElBU,MAAKD,gBAAgB3K,UAG9B4M,WAA4C,SAAC5M,GAI3C,OAFAuK,aAAeN,UAAUC,MAElBU,MAAKiB,eAAe7L,yfAhUY6M,QAAApI,QAAMqI,oFA8I7C,IAAM9B,SAAW3D,WAAA5C,QAAS0C,YAAYnL,MACtC,GAAIgP,SAAU,CAAA,IACL3I,cAAiB2I,SAAjB3I,eACP,EAAAgG,QAAAvG,aAAYO,cAAe4H,UAAUK,MAAMF,KAAMpO,KAAK4P,aACtD,EAAAvD,QAAAvG,aAAYO,cAAe4H,UAAUC,MAAME,KAAMpO,KAAK4P,aACtD,EAAAvD,QAAAvG,aAAYO,cAAe4H,UAAUK,MAAMD,KAAMrO,KAAK6P,iBACtD,EAAAxD,QAAAvG,aAAYO,cAAe4H,UAAUC,MAAMG,KAAMrO,KAAK6P,gBAClD7P,KAAK4C,MAAM+M,uBAAsB,EAAAtD,QAAAzC,wBAAuBvD,iDAiL9D,OAAOwK,QAAApI,QAAMsI,aAAaF,QAAApI,QAAMuI,SAASC,KAAKjR,KAAK4C,MAAMsO,WACvDC,OAAO,EAAA9E,QAAArC,YAAWhK,KAAK4C,MAAMsO,SAAStO,MAAMuO,OAI5CtC,YAAa7O,KAAK6O,YAClB8B,aAAc3Q,KAAK2Q,aACnBD,UAAW1Q,KAAK0Q,UAChBE,WAAY5Q,KAAK4Q,kCA9UFpC,cAEZ4C,YAAc,gBAFF5C,cAIZ6C,WAOLvC,cAAewC,YAAA7I,QAAU8I,KAMzBtC,SAAUqC,YAAA7I,QAAU8I,KAOpB5B,qBAAsB2B,YAAA7I,QAAU8I,KAMhChK,aAAc,SAAS3E,MAA2BC,UAChD,IAAwB,IAApB2O,QAAQC,SAAoB7O,MAAMC,WAA0C,IAA7BD,MAAMC,UAAU6O,SACjE,MAAM,IAAI3O,MAAM,iDAOpB6J,KAAM0E,YAAA7I,QAAUkJ,QAAQL,YAAA7I,QAAUmJ,QAsBlCxC,OAAQkC,YAAA7I,QAAUoJ,OAsBlBxC,OAAQiC,YAAA7I,QAAUoJ,OAMlBnC,QAAS4B,YAAA7I,QAAUtG,KAMnBgO,OAAQmB,YAAA7I,QAAUtG,KAMlBsO,OAAQa,YAAA7I,QAAUtG,KAMlB0M,YAAayC,YAAA7I,QAAUtG,KAKvB2C,UAAAA,OAAAA,UACAqM,MAAAA,OAAAA,UACAW,UAAAA,OAAAA,WAlHiBtD,cAqHZuD,cACLjD,eAAe,EACfO,OAAQ,KACRJ,UAAU,EACVU,sBAAsB,EACtBpI,aAAc,KACd6H,OAAQ,KACRxC,KAAM,KACNkF,UAAW,KACXpC,QAAS,aACTS,OAAQ,aACRM,OAAQ,aACR5B,YAAa,8BAjIIL,wLC3EN,wECFf,IAAIwD,UAAY7R,oBAAQ,IAAmBsI,QAM3C7I,OAAOD,QAAUqS,UACjBpS,OAAOD,QAAQ8I,QAAUuJ,UACzBpS,OAAOD,QAAQ6O,cAAgBrO,oBAAQ,IAAuBsI,ojDCP9DtI,oBAAA,uCACAA,oBAAA,sCACAA,oBAAA,wCACAA,oBAAA,KACAkM,QAAAlM,oBAAA,GACA6N,aAAA7N,oBAAA,GACAwE,OAAAxE,oBAAA,0CACAA,oBAAA,kCAEAA,oBAAA,KA2BqB6R,qCAkInB,SAAAA,UAAYpP,sIAAuBqP,CAAAjS,KAAAgS,WAAA,IAAApD,+LAAAsD,CAAAlS,MAAAgS,UAAAG,WAAAnR,OAAAoR,eAAAJ,YAAAvR,KAAAT,KAC3B4C,QAD2B,OAAAgM,MAsDnCyD,YAAqC,SAACrO,EAAG+J,WACvC,EAAA0B,MAAAhH,SAAI,6BAA8BsF,UAKlC,IAAoB,IAFAa,MAAKhM,MAAM8M,QAAQ1L,GAAG,EAAAgK,aAAAF,qBAAAc,MAA0Bb,WAEzC,OAAO,EAElCa,MAAKU,UAAUb,UAAU,EAAM6D,SAAS,KA9DP1D,MAiEnCuB,OAAgC,SAACnM,EAAG+J,UAClC,IAAKa,MAAKpB,MAAMiB,SAAU,OAAO,GACjC,EAAAgB,MAAAhH,SAAI,wBAAyBsF,UAE7B,IAAMwE,QAAS,EAAAvE,aAAAF,qBAAAc,MAA0Bb,UAEnCyE,UACJ3K,EAAG0K,OAAO1K,EACVG,EAAGuK,OAAOvK,GAIZ,GAAI4G,MAAKhM,MAAM2I,OAAQ,CAAA,IAEd1D,GAAQ2K,SAAR3K,EAAGG,GAAKwK,SAALxK,EAKVwK,SAAS3K,GAAK+G,MAAKpB,MAAMiF,OACzBD,SAASxK,GAAK4G,MAAKpB,MAAMkF,OARJ,IAAAC,mBAWU,EAAA3E,aAAA1C,kBAAAsD,MAAuB4D,SAAS3K,EAAG2K,SAASxK,GAXtD4K,mBAAA1C,eAAAyC,kBAAA,GAWdE,UAXcD,mBAAA,GAWHE,UAXGF,mBAAA,GAYrBJ,SAAS3K,EAAIgL,UACbL,SAASxK,EAAI8K,UAGbN,SAASC,OAAS7D,MAAKpB,MAAMiF,QAAU5K,GAAI2K,SAAS3K,GACpD2K,SAASE,OAAS9D,MAAKpB,MAAMkF,QAAU1K,GAAIwK,SAASxK,GAGpDuK,OAAO1K,EAAI2K,SAAS3K,EACpB0K,OAAOvK,EAAIwK,SAASxK,EACpBuK,OAAO5E,OAAS6E,SAAS3K,EAAI+G,MAAKpB,MAAM3F,EACxC0K,OAAO3E,OAAS4E,SAASxK,EAAI4G,MAAKpB,MAAMxF,EAK1C,IAAqB,IADA4G,MAAKhM,MAAMuN,OAAOnM,EAAGuO,QACd,OAAO,EAEnC3D,MAAKU,SAASkD,WA3GmB5D,MA8GnCmE,WAAoC,SAAC/O,EAAG+J,UACtC,IAAKa,MAAKpB,MAAMiB,SAAU,OAAO,EAIjC,IAAmB,IADAG,MAAKhM,MAAM6N,OAAOzM,GAAG,EAAAgK,aAAAF,qBAAAc,MAA0Bb,WACxC,OAAO,GAEjC,EAAA0B,MAAAhH,SAAI,4BAA6BsF,UAEjC,IAAMyE,UACJ/D,UAAU,EACVgE,OAAQ,EACRC,OAAQ,GAMV,GADmBM,QAAQpE,MAAKhM,MAAM2M,UACtB,CAAA,IAAA0D,qBACCrE,MAAKhM,MAAM2M,SAAnB1H,IADOoL,qBACPpL,EAAGG,IADIiL,qBACJjL,EACVwK,SAAS3K,EAAIA,IACb2K,SAASxK,EAAIA,IAGf4G,MAAKU,SAASkD,WAnId5D,MAAKpB,OAEHiB,UAAU,EAGV6D,SAAS,EAGTzK,EAAGjF,MAAM2M,SAAW3M,MAAM2M,SAAS1H,EAAIjF,MAAMsQ,gBAAgBrL,EAC7DG,EAAGpF,MAAM2M,SAAW3M,MAAM2M,SAASvH,EAAIpF,MAAMsQ,gBAAgBlL,EAG7DyK,OAAQ,EAAGC,OAAQ,EAGnBS,cAAc,GAlBiBvE,qcAlIEiC,QAAApI,QAAMqI,+EAyJrC9Q,KAAK4C,MAAM2M,UAAcvP,KAAK4C,MAAMuN,QAAUnQ,KAAK4C,MAAM6N,QAE3DxF,QAAQmI,KAAK,8QAQiB,IAAtBvJ,OAAOwJ,YAA8BhI,WAAA5C,QAAS0C,YAAYnL,gBAAiB6J,OAAOwJ,YAC1FrT,KAAKsP,UAAW6D,cAAc,sDAIRG,YAEpBA,UAAU/D,UACRvP,KAAK4C,MAAM2M,UACX+D,UAAU/D,SAAS1H,IAAM7H,KAAK4C,MAAM2M,SAAS1H,GAC7CyL,UAAU/D,SAASvH,IAAMhI,KAAK4C,MAAM2M,SAASvH,GAGjDhI,KAAKsP,UAAWzH,EAAGyL,UAAU/D,SAAS1H,EAAGG,EAAGsL,UAAU/D,SAASvH,mDAKjEhI,KAAKsP,UAAUb,UAAU,qCAsFC,IAAA8E,YACtBpC,SAAYqC,aAAe,KAIzBpI,WADa4H,QAAQhT,KAAK4C,MAAM2M,WACLvP,KAAKwN,MAAMiB,SAEtCc,SAAWvP,KAAK4C,MAAM2M,UAAYvP,KAAK4C,MAAMsQ,gBAC7CO,eAEJ5L,GAAG,EAAAmG,aAAAhB,UAAShN,OAASoL,UACnBpL,KAAKwN,MAAM3F,EACX0H,SAAS1H,EAGXG,GAAG,EAAAgG,aAAAd,UAASlN,OAASoL,UACnBpL,KAAKwN,MAAMxF,EACXuH,SAASvH,GAIThI,KAAKwN,MAAM2F,aACbK,cAAe,EAAAnH,QAAA3D,oBAAmB+K,eAMlCtC,OAAQ,EAAA9E,QAAAlE,oBAAmBsL,eA5BH,IAAAC,OAmCtB1T,KAAK4C,MAHP+Q,iBAhCwBD,OAgCxBC,iBACAC,yBAjCwBF,OAiCxBE,yBACAC,wBAlCwBH,OAkCxBG,wBAGI3C,SAAWL,QAAApI,QAAMuI,SAASC,KAAKjR,KAAK4C,MAAMsO,UAG1CpM,WAAY,EAAAgP,aAAArL,SAAYyI,SAAStO,MAAMkC,WAAa,GAAK6O,kBAA7CJ,eAAAlL,gBAAAkL,YACfK,yBAA2B5T,KAAKwN,MAAMiB,UADvBpG,gBAAAkL,YAEfM,wBAA0B7T,KAAKwN,MAAM8E,SAFtBiB,cAOlB,OACE1C,QAAApI,QAAAa,cAAAyK,gBAAAtL,QAAA0B,YAAmBnK,KAAK4C,OAAO8M,QAAS1P,KAAKqS,YAAalC,OAAQnQ,KAAKmQ,OAAQM,OAAQzQ,KAAK+S,aACzFlC,QAAApI,QAAMsI,aAAaG,UAClBpM,UAAWA,UACXqM,MAAAA,YAAWD,SAAStO,MAAMuO,MAAUA,OACpCW,UAAW0B,iCA/TAxB,UAEZZ,YAAc,YAFFY,UAIZX,sBAEF0C,gBAAAtL,QAAc4I,WAejBpE,KAAMqE,YAAA7I,QAAUuL,OAAO,OAAQ,IAAK,IAAK,SA4BzCzI,OAAQ+F,YAAA7I,QAAUwL,WAChB3C,YAAA7I,QAAUyL,OACRxM,KAAM4J,YAAA7I,QAAUmJ,OAChBpG,MAAO8F,YAAA7I,QAAUmJ,OACjBjK,IAAK2J,YAAA7I,QAAUmJ,OACfnG,OAAQ6F,YAAA7I,QAAUmJ,SAEpBN,YAAA7I,QAAUoJ,OACVP,YAAA7I,QAAUuL,QAAO,MAGnBL,iBAAkBrC,YAAA7I,QAAUoJ,OAC5B+B,yBAA0BtC,YAAA7I,QAAUoJ,OACpCgC,wBAAyBvC,YAAA7I,QAAUoJ,OAmBnCqB,gBAAiB5B,YAAA7I,QAAUyL,OACzBrM,EAAGyJ,YAAA7I,QAAUmJ,OACb5J,EAAGsJ,YAAA7I,QAAUmJ,SAuBfrC,SAAU+B,YAAA7I,QAAUyL,OAClBrM,EAAGyJ,YAAA7I,QAAUmJ,OACb5J,EAAGsJ,YAAA7I,QAAUmJ,SAMf9M,UAAAA,OAAAA,UACAqM,MAAAA,OAAAA,UACAW,UAAAA,OAAAA,YApHiBE,UAuHZD,yBACFgC,gBAAAtL,QAAcsJ,cACjB9E,KAAM,OACN1B,QAAQ,EACRoI,iBAAkB,kBAClBC,yBAA0B,2BAC1BC,wBAAyB,0BACzBX,iBAAkBrL,EAAG,EAAGG,EAAG,GAC3BuH,SAAU,uBA/HOyC,qEC5BrB,IAAA9O,cAAA/C,oBAAA,GACAgU,UAAAhU,oBAAA,GACAsK,QAAAtK,oBAAA,GACAiU,OAAAjU,oBAAA,IAEAkU,qBAAAlU,oBAAA,GACAmU,eAAAnU,oBAAA,IAEAP,OAAAD,QAAA,SAAA4U,eAAAC,qBAuGA,SAAAC,GAAA5M,EAAAG,GAEA,OAAAH,IAAAG,EAGA,IAAAH,GAAA,EAAAA,GAAA,EAAAG,EAGAH,GAAAA,GAAAG,GAAAA,EAYA,SAAA0M,cAAA1J,SACAhL,KAAAgL,QAAAA,QACAhL,KAAA2U,MAAA,GAKA,SAAAC,2BAAAC,UAKA,SAAAC,UAAAC,WAAAnS,MAAAC,SAAAC,cAAAkS,SAAAC,aAAAC,QAIA,GAHApS,cAAAA,eAAAqS,UACAF,aAAAA,cAAApS,SAEAqS,SAAAb,qBACA,GAAAG,oBAEAL,WACA,EACA,0LAIS,GAAA,eAAAnT,QAAA2C,qBAAAC,IAAAC,UAAA,oBAAAoH,QAAA,CAET,IAAAmK,SAAAtS,cAAA,IAAAD,UAEAwS,wBAAAD,WAEAE,2BAAA,IAEA7K,SACA,EACA,8SAKAwK,aACAnS,eAEAuS,wBAAAD,WAAA,EACAE,8BAIA,OAAA,MAAA1S,MAAAC,UACAkS,WAEA,IAAAL,cADA,OAAA9R,MAAAC,UACA,OAAAmS,SAAA,KAAAC,aAAA,+BAAAnS,cAAA,8BAEA,OAAAkS,SAAA,KAAAC,aAAA,+BAAAnS,cAAA,oCAEA,KAEA+R,SAAAjS,MAAAC,SAAAC,cAAAkS,SAAAC,cAjDA,GAAA,eAAAjU,QAAA2C,qBAAAC,IAAAC,SACA,IAAAwR,2BACAC,2BAAA,EAmDA,IAAAC,iBAAAT,UAAAU,KAAA,MAAA,GAGA,OAFAD,iBAAAR,WAAAD,UAAAU,KAAA,MAAA,GAEAD,iBAGA,SAAAE,2BAAAC,cAcA,OAAAd,2BAbA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,aAAAC,QACA,IAAAS,UAAA/S,MAAAC,UAEA,GADA+S,YAAAD,aACAD,aAMA,OAAA,IAAAhB,cAAA,WAAAM,SAAA,KAAAC,aAAA,cAFAY,eAAAF,WAEA,kBAAA7S,cAAA,gBAAA4S,aAAA,MAEA,OAAA,OAgMA,SAAAI,OAAAH,WACA,cAAAA,WACA,IAAA,SACA,IAAA,SACA,IAAA,YACA,OAAA,EACA,IAAA,UACA,OAAAA,UACA,IAAA,SACA,GAAA/K,MAAAmF,QAAA4F,WACA,OAAAA,UAAAI,MAAAD,QAEA,GAAA,OAAAH,WAAApB,eAAAoB,WACA,OAAA,EAGA,IAAAK,WAvYA,SAAAC,eACA,IAAAD,WAAAC,gBAAAC,iBAAAD,cAAAC,kBAAAD,cAAAE,uBACA,GAAA,mBAAAH,WACA,OAAAA,WAoYAI,CAAAT,WACA,IAAAK,WAqBA,OAAA,EApBA,IACAK,KADAC,SAAAN,WAAAvV,KAAAkV,WAEA,GAAAK,aAAAL,UAAAY,SACA,OAAAF,KAAAC,SAAAE,QAAAC,MACA,IAAAX,OAAAO,KAAAK,OACA,OAAA,OAKA,OAAAL,KAAAC,SAAAE,QAAAC,MAAA,CACA,IAAAE,MAAAN,KAAAK,MACA,GAAAC,QACAb,OAAAa,MAAA,IACA,OAAA,EASA,OAAA,EACA,QACA,OAAA,GAwBA,SAAAf,YAAAD,WACA,IAAAiB,gBAAAjB,UACA,OAAA/K,MAAAmF,QAAA4F,WACA,QAEAA,qBAAAzQ,OAIA,SA7BA,SAAA0R,SAAAjB,WAEA,MAAA,WAAAiB,UAKA,WAAAjB,UAAA,kBAKA,mBAAArL,QAAAqL,qBAAArL,OAmBAuM,CAAAD,SAAAjB,WACA,SAEAiB,SAKA,SAAAf,eAAAF,WACA,QAAA,IAAAA,WAAA,OAAAA,UACA,MAAA,GAAAA,UAEA,IAAAiB,SAAAhB,YAAAD,WACA,GAAA,WAAAiB,SAAA,CACA,GAAAjB,qBAAAmB,KACA,MAAA,OACO,GAAAnB,qBAAAzQ,OACP,MAAA,SAGA,OAAA0R,SA1eA,IAAAV,gBAAA,mBAAA5L,QAAAA,OAAAgM,SACAH,qBAAA,aAsEAhB,UAAA,gBAIA4B,gBACAjV,MAAA2T,2BAAA,SACAlE,KAAAkE,2BAAA,WACAtT,KAAAsT,2BAAA,YACA7D,OAAA6D,2BAAA,UACAlU,OAAAkU,2BAAA,UACA5D,OAAA4D,2BAAA,UACAuB,OAAAvB,2BAAA,UAEAwB,IA0HArC,2BAAA1R,cAAAI,iBAzHAqO,QA4HA,SAAAuF,aAkBA,OAAAtC,2BAjBA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cACA,GAAA,mBAAAiC,YACA,OAAA,IAAAxC,cAAA,aAAAO,aAAA,mBAAAnS,cAAA,mDAEA,IAAA6S,UAAA/S,MAAAC,UACA,IAAA+H,MAAAmF,QAAA4F,WAEA,OAAA,IAAAjB,cAAA,WAAAM,SAAA,KAAAC,aAAA,cADAW,YAAAD,WACA,kBAAA7S,cAAA,yBAEA,IAAA,IAAAxC,EAAA,EAAqBA,EAAAqV,UAAA3T,OAAsB1B,IAAA,CAC3C,IAAA4D,MAAAgT,YAAAvB,UAAArV,EAAAwC,cAAAkS,SAAAC,aAAA,IAAA3U,EAAA,IAAA+T,sBACA,GAAAnQ,iBAAAnB,MACA,OAAAmB,MAGA,OAAA,QA3IAiT,QAyJAvC,2BARA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cACA,IAAAU,UAAA/S,MAAAC,UACA,OAAA0R,eAAAoB,WAIA,KAFA,IAAAjB,cAAA,WAAAM,SAAA,KAAAC,aAAA,cADAW,YAAAD,WACA,kBAAA7S,cAAA,wCApJAsU,WA2JA,SAAAC,eASA,OAAAzC,2BARA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cACA,KAAArS,MAAAC,oBAAAwU,eAAA,CACA,IAAAC,kBAAAD,cAAAxW,MAAAsU,UAEA,OAAA,IAAAT,cAAA,WAAAM,SAAA,KAAAC,aAAA,cAwQA,SAAAU,WACA,OAAAA,UAAA4B,aAAA5B,UAAA4B,YAAA1W,KAGA8U,UAAA4B,YAAA1W,KAFAsU,UA3QAqC,CAAA5U,MAAAC,WACA,kBAAAC,cAAA,4BAAAwU,kBAAA,MAEA,OAAA,QAjKA/R,KAyPAqP,2BANA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cACA,OAAAa,OAAAlT,MAAAC,WAGA,KAFA,IAAA6R,cAAA,WAAAM,SAAA,KAAAC,aAAA,kBAAAnS,cAAA,8BApPA2U,SAyLA,SAAAP,aAoBA,OAAAtC,2BAnBA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cACA,GAAA,mBAAAiC,YACA,OAAA,IAAAxC,cAAA,aAAAO,aAAA,mBAAAnS,cAAA,oDAEA,IAAA6S,UAAA/S,MAAAC,UACA+T,SAAAhB,YAAAD,WACA,GAAA,WAAAiB,SACA,OAAA,IAAAlC,cAAA,WAAAM,SAAA,KAAAC,aAAA,cAAA2B,SAAA,kBAAA9T,cAAA,0BAEA,IAAA,IAAA4U,OAAA/B,UACA,GAAAA,UAAAjU,eAAAgW,KAAA,CACA,IAAAxT,MAAAgT,YAAAvB,UAAA+B,IAAA5U,cAAAkS,SAAAC,aAAA,IAAAyC,IAAArD,sBACA,GAAAnQ,iBAAAnB,MACA,OAAAmB,MAIA,OAAA,QA1MA8P,MAoKA,SAAA2D,gBACA,OAAA/M,MAAAmF,QAAA4H,gBAgBA/C,2BAXA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cAEA,IAAA,IADAU,UAAA/S,MAAAC,UACAvC,EAAA,EAAqBA,EAAAqX,eAAA3V,OAA2B1B,IAChD,GAAAmU,GAAAkB,UAAAgC,eAAArX,IACA,OAAA,KAKA,OAAA,IAAAoU,cAAA,WAAAM,SAAA,KAAAC,aAAA,eAAAU,UAAA,kBAAA7S,cAAA,sBADA8U,KAAAC,UAAAF,gBACA,QAbA,eAAA3W,QAAA2C,qBAAAC,IAAAC,UAAA4G,SAAA,EAAA,sEACAvH,cAAAI,kBAtKA2Q,UA8MA,SAAA6D,qBACA,IAAAlN,MAAAmF,QAAA+H,qBAEA,MADA,eAAA9W,QAAA2C,qBAAAC,IAAAC,UAAA4G,SAAA,EAAA,0EACAvH,cAAAI,gBAGA,IAAA,IAAAhD,EAAA,EAAmBA,EAAAwX,oBAAA9V,OAAgC1B,IAAA,CACnD,IAAAyX,QAAAD,oBAAAxX,GACA,GAAA,mBAAAyX,QAQA,OAPAtN,SACA,EACA,6GA2LA,SAAAiM,OACA,IAAAnN,KAAAsM,eA1LAkC,SA2LA,OAAAxO,MACA,IAAA,QACA,IAAA,SACA,MAAA,MAAAA,KACA,IAAA,UACA,IAAA,OACA,IAAA,SACA,MAAA,KAAAA,KACA,QACA,OAAAA,MApMAyO,GACA1X,GAEA4C,cAAAI,gBAcA,OAAAsR,2BAVA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cACA,IAAA,IAAA3U,EAAA,EAAqBA,EAAAwX,oBAAA9V,OAAgC1B,IAErD,GAAA,OAAAyX,EADAD,oBAAAxX,IACAsC,MAAAC,SAAAC,cAAAkS,SAAAC,aAAAZ,sBACA,OAAA,KAIA,OAAA,IAAAK,cAAA,WAAAM,SAAA,KAAAC,aAAA,kBAAAnS,cAAA,SAzOAoR,MAwPA,SAAA+D,YAmBA,OAAArD,2BAlBA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cACA,IAAAU,UAAA/S,MAAAC,UACA+T,SAAAhB,YAAAD,WACA,GAAA,WAAAiB,SACA,OAAA,IAAAlC,cAAA,WAAAM,SAAA,KAAAC,aAAA,cAAA2B,SAAA,kBAAA9T,cAAA,yBAEA,IAAA,IAAA4U,OAAAO,WAAA,CACA,IAAAF,QAAAE,WAAAP,KACA,GAAAK,QAAA,CAGA,IAAA7T,MAAA6T,QAAApC,UAAA+B,IAAA5U,cAAAkS,SAAAC,aAAA,IAAAyC,IAAArD,sBACA,GAAAnQ,MACA,OAAAA,OAGA,OAAA,QAxQAgU,MA6QA,SAAAD,YA2BA,OAAArD,2BA1BA,SAAAhS,MAAAC,SAAAC,cAAAkS,SAAAC,cACA,IAAAU,UAAA/S,MAAAC,UACA+T,SAAAhB,YAAAD,WACA,GAAA,WAAAiB,SACA,OAAA,IAAAlC,cAAA,WAAAM,SAAA,KAAAC,aAAA,cAAA2B,SAAA,kBAAA9T,cAAA,yBAIA,IAAAqV,QAAA/D,UAA6BxR,MAAAC,UAAAoV,YAC7B,IAAA,IAAAP,OAAAS,QAAA,CACA,IAAAJ,QAAAE,WAAAP,KACA,IAAAK,QACA,OAAA,IAAArD,cACA,WAAAM,SAAA,KAAAC,aAAA,UAAAyC,IAAA,kBAAA5U,cAAA,mBACA8U,KAAAC,UAAAjV,MAAAC,UAAA,KAAA,MACA,iBAAA+U,KAAAC,UAAA7W,OAAAoX,KAAAH,YAAA,KAAA,OAGA,IAAA/T,MAAA6T,QAAApC,UAAA+B,IAAA5U,cAAAkS,SAAAC,aAAA,IAAAyC,IAAArD,sBACA,GAAAnQ,MACA,OAAAA,MAGA,OAAA,SAuIA,OA3YAwQ,cAAAjT,UAAAsB,MAAAtB,UAwYAsV,eAAAzC,eAAAA,eACAyC,eAAAsB,UAAAtB,eAEAA,2ECphBA,IAAAuB,sBAAAtX,OAAAsX,sBACA5W,eAAAV,OAAAS,UAAAC,eACA6W,iBAAAvX,OAAAS,UAAA+W,qBAsDA5Y,OAAAD,QA5CA,WACA,IACA,IAAAqB,OAAAoT,OACA,OAAA,EAMA,IAAAqE,MAAA,IAAAC,OAAA,OAEA,GADAD,MAAA,GAAA,KACA,MAAAzX,OAAA2X,oBAAAF,OAAA,GACA,OAAA,EAKA,IAAA,IADAG,SACAtY,EAAA,EAAiBA,EAAA,GAAQA,IACzBsY,MAAA,IAAAF,OAAAG,aAAAvY,IAAAA,EAKA,GAAA,eAHAU,OAAA2X,oBAAAC,OAAAE,IAAA,SAAAzX,GACA,OAAAuX,MAAAvX,KAEA0X,KAAA,IACA,OAAA,EAIA,IAAAC,SAIA,MAHA,uBAAAC,MAAA,IAAAC,QAAA,SAAAC,QACAH,MAAAG,QAAAA,SAGA,yBADAnY,OAAAoX,KAAApX,OAAAoT,UAAkC4E,QAAAD,KAAA,IAMhC,MAAA1I,KAEF,OAAA,GAIA+I,GAAApY,OAAAoT,OAAA,SAAAlF,OAAAmK,QAKA,IAAA,IAJAC,KAEAC,QADAC,GAtDA,SAAAC,KACA,GAAA,OAAAA,UAAA7V,IAAA6V,IACA,MAAA,IAAAC,UAAA,yDAGA,OAAA1Y,OAAAyY,KAiDAE,CAAAzK,QAGAtN,EAAA,EAAgBA,EAAAsI,UAAAlI,OAAsBJ,IAAA,CACtC0X,KAAAtY,OAAAkJ,UAAAtI,IAEA,IAAA,IAAA8V,OAAA4B,KACA5X,eAAAjB,KAAA6Y,KAAA5B,OACA8B,GAAA9B,KAAA4B,KAAA5B,MAIA,GAAAY,sBAAA,CACAiB,QAAAjB,sBAAAgB,MACA,IAAA,IAAAhZ,EAAA,EAAkBA,EAAAiZ,QAAAvX,OAAoB1B,IACtCiY,iBAAA9X,KAAA6Y,KAAAC,QAAAjZ,MACAkZ,GAAAD,QAAAjZ,IAAAgZ,KAAAC,QAAAjZ,MAMA,OAAAkZ,+DC/EA,GAAA,eAAAxY,QAAA2C,qBAAAC,IAAAC,SACA,IAAAsQ,UAAAhU,oBAAA,GACAsK,QAAAtK,oBAAA,GACAkU,qBAAAlU,oBAAA,GACAyZ,sBA6CAha,OAAAD,QA/BA,SAAAka,UAAAC,OAAA9E,SAAAlS,cAAAiX,UACA,GAAA,eAAA/Y,QAAA2C,qBAAAC,IAAAC,SACA,IAAA,IAAAmW,gBAAAH,UACA,GAAAA,UAAAnY,eAAAsY,cAAA,CACA,IAAA9V,MAIA,IAGAiQ,UAAA,mBAAA0F,UAAAG,cAAA,gHAAgGlX,eAAA,cAAAkS,SAAAgF,oBAAAH,UAAAG,eAChG9V,MAAA2V,UAAAG,cAAAF,OAAAE,aAAAlX,cAAAkS,SAAA,KAAAX,sBACS,MAAA4F,IACT/V,MAAA+V,GAGA,GADAxP,SAAAvG,OAAAA,iBAAAnB,MAAA,2RAAgGD,eAAA,cAAAkS,SAAAgF,oBAAA9V,OAChGA,iBAAAnB,SAAAmB,MAAA8G,WAAA4O,oBAAA,CAGAA,mBAAA1V,MAAA8G,UAAA,EAEA,IAAA2J,MAAAoF,SAAAA,WAAA,GAEAtP,SAAA,EAAA,uBAAAuK,SAAA9Q,MAAA8G,QAAA,MAAA2J,MAAAA,MAAA,kEC1CA,IAAAzR,cAAA/C,oBAAA,GACAgU,UAAAhU,oBAAA,GACAkU,qBAAAlU,oBAAA,GAEAP,OAAAD,QAAA,WACA,SAAAua,KAAAtX,MAAAC,SAAAC,cAAAkS,SAAAC,aAAAC,QACAA,SAAAb,sBAIAF,WACA,EACA,mLAMA,SAAAgG,UACA,OAAAD,KAFAA,KAAAnF,WAAAmF,KAMA,IAAAnD,gBACAjV,MAAAoY,KACA3I,KAAA2I,KACA/X,KAAA+X,KACAtI,OAAAsI,KACA3Y,OAAA2Y,KACArI,OAAAqI,KACAlD,OAAAkD,KAEAjD,IAAAiD,KACAvI,QAAAwI,QACAhD,QAAA+C,KACA9C,WAAA+C,QACA5U,KAAA2U,KACAzC,SAAA0C,QACAnG,MAAAmG,QACAlG,UAAAkG,QACAjG,MAAAiG,QACAjC,MAAAiC,SAMA,OAHApD,eAAAzC,eAAApR,cACA6T,eAAAsB,UAAAtB,eAEAA,8DCxDA,IAAAqD,6BAAAC,+BAOA,WACA,aAIA,SAAAC,aAGA,IAAA,IAFAC,WAEAja,EAAA,EAAiBA,EAAA4J,UAAAlI,OAAsB1B,IAAA,CACvC,IAAA2C,IAAAiH,UAAA5J,GACA,GAAA2C,IAAA,CAEA,IAAAuX,eAAAvX,IAEA,GAAA,WAAAuX,SAAA,WAAAA,QACAD,QAAAE,KAAAxX,UACI,GAAA2H,MAAAmF,QAAA9M,KACJsX,QAAAE,KAAAH,WAAArY,MAAA,KAAAgB,WACI,GAAA,WAAAuX,QACJ,IAAA,IAAA9C,OAAAzU,IACAyX,OAAAja,KAAAwC,IAAAyU,MAAAzU,IAAAyU,MACA6C,QAAAE,KAAA/C,MAMA,OAAA6C,QAAAxB,KAAA,KAxBA,IAAA2B,UAAgBhZ,oBA2BhB,IAAA9B,QAAAA,OAAAD,QACAC,OAAAD,QAAA2a,gBAKG1W,KAFHyW,8BAAA,WACA,OAAAC,YACGrY,MAAAtC,QAFHya,oCAEGxa,OAAAD,QAAA0a,+BApCH,8DCLO,SAASM,YAA4C,IAAlCC,KAAkC1Q,UAAAlI,OAAA,QAAA4B,IAAAsG,UAAA,GAAAA,UAAA,GAArB,YAIrC,GAAsB,oBAAXL,aAAqD,IAApBA,OAAOyG,SAA0B,MAAO,GAEpF,IAAMa,MAAQtH,OAAOyG,SAASuK,gBAAgB1J,MAE9C,GAAIyJ,QAAQzJ,MAAO,MAAO,GAE1B,IAAK,IAAI7Q,EAAI,EAAGA,EAAIwa,SAAS9Y,OAAQ1B,IACnC,GAAIiI,mBAAmBqS,KAAME,SAASxa,MAAO6Q,MAAO,OAAO2J,SAASxa,GAGtE,MAAO,GAGF,SAASiI,mBAAmBqS,KAAcG,QAC/C,OAAOA,OAAAA,GAAYA,OAOrB,SAA0BC,KAGxB,IAAK,IAFDC,IAAM,GACNC,kBAAmB,EACd5a,EAAI,EAAGA,EAAI0a,IAAIhZ,OAAQ1B,IAC1B4a,kBACFD,KAAOD,IAAI1a,GAAG6a,cACdD,kBAAmB,GACC,MAAXF,IAAI1a,GACb4a,kBAAmB,EAEnBD,KAAOD,IAAI1a,GAGf,OAAO2a,IApBqBG,CAAiBR,MAAUA,oEAlBzCD,UAAAA,kBAiBApS,mBAAAA,2BAIA8S,qBAAT,SAA8BT,KAAcG,QACjD,OAAOA,OAAAA,IAAaA,OAAOO,cAApB,IAAqCV,KAASA,MAvBvD,IAAME,UAAY,MAAO,SAAU,IAAK,sBA6CzBH,sCCnCf,SAAAY,mBACA,MAAA,IAAAxY,MAAA,mCAEA,SAAAyY,sBACA,MAAA,IAAAzY,MAAA,qCAsBA,SAAA0Y,WAAAC,KACA,GAAAC,mBAAAC,WAEA,OAAAA,WAAAF,IAAA,GAGA,IAAAC,mBAAAJ,mBAAAI,mBAAAC,WAEA,OADAD,iBAAAC,WACAA,WAAAF,IAAA,GAEA,IAEA,OAAAC,iBAAAD,IAAA,GACK,MAAA1X,GACL,IAEA,OAAA2X,iBAAAlb,KAAA,KAAAib,IAAA,GACS,MAAA1X,GAET,OAAA2X,iBAAAlb,KAAAT,KAAA0b,IAAA,KAsCA,SAAAG,kBACAC,UAAAC,eAGAD,UAAA,EACAC,aAAA/Z,OACAga,MAAAD,aAAA7Q,OAAA8Q,OAEAC,YAAA,EAEAD,MAAAha,QACAka,cAIA,SAAAA,aACA,IAAAJ,SAAA,CAGA,IAAAK,QAAAV,WAAAI,iBACAC,UAAA,EAGA,IADA,IAAAM,IAAAJ,MAAAha,OACAoa,KAAA,CAGA,IAFAL,aAAAC,MACAA,WACAC,WAAAG,KACAL,cACAA,aAAAE,YAAAI,MAGAJ,YAAA,EACAG,IAAAJ,MAAAha,OAEA+Z,aAAA,KACAD,UAAA,EAnEA,SAAAQ,QACA,GAAAC,qBAAAC,aAEA,OAAAA,aAAAF,QAGA,IAAAC,qBAAAf,sBAAAe,qBAAAC,aAEA,OADAD,mBAAAC,aACAA,aAAAF,QAEA,IAEAC,mBAAAD,QACK,MAAAtY,GACL,IAEA,OAAAuY,mBAAA9b,KAAA,KAAA6b,QACS,MAAAtY,GAGT,OAAAuY,mBAAA9b,KAAAT,KAAAsc,UAgDAG,CAAAN,UAiBA,SAAAO,KAAAhB,IAAA5Z,OACA9B,KAAA0b,IAAAA,IACA1b,KAAA8B,MAAAA,MAYA,SAAA6a,QAhKA,IAOAhB,iBACAY,mBARA/K,QAAA5R,OAAAD,YAgBA,WACA,IAEAgc,iBADA,mBAAAC,WACAA,WAEAL,iBAEK,MAAAvX,GACL2X,iBAAAJ,iBAEA,IAEAgB,mBADA,mBAAAC,aACAA,aAEAhB,oBAEK,MAAAxX,GACLuY,mBAAAf,qBAjBA,GAwEA,IAEAO,aAFAC,SACAF,UAAA,EAEAG,YAAA,EAyCAzK,QAAAoL,SAAA,SAAAlB,KACA,IAAAvX,KAAA,IAAAyG,MAAAV,UAAAlI,OAAA,GACA,GAAAkI,UAAAlI,OAAA,EACA,IAAA,IAAA1B,EAAA,EAAuBA,EAAA4J,UAAAlI,OAAsB1B,IAC7C6D,KAAA7D,EAAA,GAAA4J,UAAA5J,GAGA0b,MAAAvB,KAAA,IAAAiC,KAAAhB,IAAAvX,OACA,IAAA6X,MAAAha,QAAA8Z,UACAL,WAAAS,aASAQ,KAAAjb,UAAA4a,IAAA,WACArc,KAAA0b,IAAAzZ,MAAA,KAAAjC,KAAA8B,QAEA0P,QAAAqL,MAAA,UACArL,QAAAC,SAAA,EACAD,QAAAsL,OACAtL,QAAAuL,QACAvL,QAAAwL,QAAA,GACAxL,QAAAyL,YAIAzL,QAAA0L,GAAAP,KACAnL,QAAA2L,YAAAR,KACAnL,QAAA4L,KAAAT,KACAnL,QAAA6L,IAAAV,KACAnL,QAAA8L,eAAAX,KACAnL,QAAA+L,mBAAAZ,KACAnL,QAAAgM,KAAAb,KACAnL,QAAAiM,gBAAAd,KACAnL,QAAAkM,oBAAAf,KAEAnL,QAAAmM,UAAA,SAAA9c,MAAqC,UAErC2Q,QAAAoM,QAAA,SAAA/c,MACA,MAAA,IAAAkC,MAAA,qCAGAyO,QAAAqM,IAAA,WAA2B,MAAA,KAC3BrM,QAAAsM,MAAA,SAAAC,KACA,MAAA,IAAAhb,MAAA,mCAEAyO,QAAAwM,MAAA,WAA4B,OAAA","file":"dist/react-draggable.min.js.map","sourceRoot":"dist/react-draggable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react-dom\"), require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react-dom\", \"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDraggable\"] = factory(require(\"react-dom\"), require(\"react\"));\n\telse\n\t\troot[\"ReactDraggable\"] = factory(root[\"ReactDOM\"], root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 33f74c03cddcdadf8186","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/shims.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 2\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 3\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n// module id = 4\n// module chunks = 0","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/domFns.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX,\n y: draggable.state.y + coreData.deltaY,\n deltaX: coreData.deltaX,\n deltaY: coreData.deltaY,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/positionFns.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (process.browser === true && props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/DraggableCore.js","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/log.js","var Draggable = require('./lib/Draggable').default;\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = require('./lib/DraggableCore').default;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/Draggable.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithTypeCheckers.js\n// module id = 14\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/checkPropTypes.js\n// module id = 16\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 17\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 18\n// module chunks = 0","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils/getPrefix.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 20\n// module chunks = 0"]} \ No newline at end of file +{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","x","y","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 5115f751..7706d04d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.0.5", + "version": "3.1.0", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -90,4 +90,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} +} \ No newline at end of file From ed301b26379e5833336f4bcaf0d796e370da0f15 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 21 Dec 2018 06:11:21 -0600 Subject: [PATCH 297/412] chore(build): update size-snapshot --- .size-snapshot.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.size-snapshot.json b/.size-snapshot.json index 43b91a2a..0464965c 100644 --- a/.size-snapshot.json +++ b/.size-snapshot.json @@ -1,12 +1,12 @@ { "dist/react-draggable.js": { - "bundled": 75213, - "minified": 22764, - "gzipped": 7663 + "bundled": 75658, + "minified": 22849, + "gzipped": 7695 }, "dist/react-draggable.min.js": { - "bundled": 51398, - "minified": 15750, - "gzipped": 5594 + "bundled": 51843, + "minified": 15835, + "gzipped": 5627 } } From 96486ca65850cb3cecadf936934dda3c833c10ec Mon Sep 17 00:00:00 2001 From: Belleve Invis Date: Sat, 22 Dec 2018 03:06:56 +0800 Subject: [PATCH 298/412] correct typing of DraggableEventHandler (#374) --- typings/index.d.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index 9e15e81a..57d9bb07 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -18,7 +18,13 @@ declare module 'react-draggable' { position: ControlPosition } - export type DraggableEventHandler = (e: React.MouseEvent | React.TouchEvent, data: DraggableData) => void | false; + export type DraggableEventHandler = ( + e: React.MouseEvent + | React.TouchEvent + | MouseEvent + | TouchEvent, + data: DraggableData + ) => void | false; export interface DraggableData { node: HTMLElement, From fb27acbdf8400c1f6b3ae9f10d8d7f1b76abc994 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 21 Dec 2018 14:08:23 -0500 Subject: [PATCH 299/412] release v3.1.1 --- CHANGELOG.md | 4 ++++ bower.json | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18a7a938..e8567665 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 3.1.1 (Dec 21, 2018) + +- Bugfix: Minor type change on DraggableEventHandler TypeScript export ([#374](https://github.com/mzabriskie/react-draggable/pull/374)) + ### 3.1.0 (Dec 21, 2018) - Feature: Added `scale` prop ([#352](https://github.com/mzabriskie/react-draggable/pull/352)) diff --git a/bower.json b/bower.json index d30c37f7..ab7d07be 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.1.0", + "version": "3.1.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/package.json b/package.json index 7706d04d..33d28051 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.1.0", + "version": "3.1.1", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 8c3083c7bdd5a1d16a9d41995e61421d257f5598 Mon Sep 17 00:00:00 2001 From: Elie Date: Wed, 26 Dec 2018 18:42:10 +0200 Subject: [PATCH 300/412] Export event type so that it is easy to consume in other packages (#377) * Update index.d.ts * exporting draggable event type --- typings/index.d.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index 57d9bb07..1a7c93a7 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -18,11 +18,13 @@ declare module 'react-draggable' { position: ControlPosition } + export type DraggableEvent = React.MouseEvent + | React.TouchEvent + | MouseEvent + | TouchEvent + export type DraggableEventHandler = ( - e: React.MouseEvent - | React.TouchEvent - | MouseEvent - | TouchEvent, + e: DraggableEvent, data: DraggableData ) => void | false; @@ -46,7 +48,8 @@ declare module 'react-draggable' { onStart: DraggableEventHandler, onDrag: DraggableEventHandler, onStop: DraggableEventHandler, - onMouseDown: (e: MouseEvent) => void + onMouseDown: (e: MouseEvent) => void, + scale: number } export default class Draggable extends React.Component, {}> { From aa0a6b4bf1375ae57a6bfa8952c6ef9ed00ea2bf Mon Sep 17 00:00:00 2001 From: Thomas Rich Date: Wed, 27 Feb 2019 01:26:10 -0800 Subject: [PATCH 301/412] feat(defaultPosition): now allows strings (#361) * defaultPosition now allows strings * fixing flow linting by adding new DefaultControlPosition type, fixing createSVGTransform to use calc with defaultPosition, adding a test for the new functionality * updating createCSSTransform and createSVGTransform to use two translates instead of a calc function do to IE incompatibility; updating spec to reflect changes * using DefaultControlPosition; fixing svg transform units issue; improving readability * types(domFns): use `ControlPosition` --- example/example.js | 5 +++++ lib/Draggable.js | 18 +++++++++--------- lib/DraggableCore.js | 1 + lib/utils/domFns.js | 27 +++++++++++++++++++++------ lib/utils/types.js | 1 + specs/draggable.spec.jsx | 16 ++++++++++++++++ 6 files changed, 53 insertions(+), 15 deletions(-) diff --git a/example/example.js b/example/example.js index 8b9f10b7..f28cee86 100644 --- a/example/example.js +++ b/example/example.js @@ -137,6 +137,11 @@ var App = React.createClass({ {"I have a default position of {x: 25, y: 25}, so I'm slightly offset."}
+ +
+ {'I have a default position based on percents {x: \'-10%\', y: \'-10%\'}, so I\'m slightly offset.'} +
+
My position can be changed programmatically.
diff --git a/lib/Draggable.js b/lib/Draggable.js index 7fcfdc02..78b7cfb7 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -7,7 +7,7 @@ import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import DraggableCore from './DraggableCore'; -import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; +import type {ControlPosition, DefaultControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; import log from './utils/log'; import type {DraggableEventHandler} from './utils/types'; import type {Element as ReactElement} from 'react'; @@ -27,7 +27,7 @@ export type DraggableProps = { defaultClassName: string, defaultClassNameDragging: string, defaultClassNameDragged: string, - defaultPosition: ControlPosition, + defaultPosition: DefaultControlPosition, position: ControlPosition, scale: number }; @@ -118,8 +118,8 @@ export default class Draggable extends React.Component so // has a clean slate. - style = createCSSTransform(transformOpts); + style = createCSSTransform(transformOpts, this.props.defaultPosition); } const { diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index a31cb3af..844f5d3c 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -52,6 +52,7 @@ export type DraggableData = { export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void; export type ControlPosition = {x: number, y: number}; +export type DefaultControlPosition = {x: number|string, y: number|string}; export type DraggableCoreProps = { allowAnyClick: boolean, diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 4cbb52a4..be9bdbaa 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -2,7 +2,7 @@ import {findInArray, isFunction, int} from './shims'; import browserPrefix, {browserPrefixToKey} from './getPrefix'; -import type {ControlPosition, MouseTouchEvent} from './types'; +import type {ControlPosition, DefaultControlPosition, MouseTouchEvent} from './types'; let matchesSelectorFunc = ''; export function matchesSelector(el: Node, selector: string): boolean { @@ -109,13 +109,28 @@ export function offsetXYFromParent(evt: {clientX: number, clientY: number}, offs return {x, y}; } -export function createCSSTransform({x, y}: {x: number, y: number}): Object { - // Replace unitless items with px - return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'}; +export function createCSSTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): Object { + let translation; + if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) { + const defaultX = `${(typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x + 'px'}`; + const defaultY = `${(typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y + 'px'}`; + translation = `translate(${defaultX}, ${defaultY}) translate(${x}px,${y}px)`; + } else { + translation = `translate(${x}px,${y}px)`; + } + return {[browserPrefixToKey('transform', browserPrefix)]: translation }; } -export function createSVGTransform({x, y}: {x: number, y: number}): string { - return 'translate(' + x + ',' + y + ')'; +export function createSVGTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): string { + let translation; + if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) { + const defaultX = (typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x; + const defaultY = (typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y; + translation = `translate(${defaultX}, ${defaultY}) translate(${x},${y})`; + } else { + translation = `translate(${x},${y})`; + } + return translation; } export function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} { diff --git a/lib/utils/types.js b/lib/utils/types.js index e701e81f..fb63372f 100644 --- a/lib/utils/types.js +++ b/lib/utils/types.js @@ -14,6 +14,7 @@ export type Bounds = { left: number, top: number, right: number, bottom: number }; export type ControlPosition = {x: number, y: number}; +export type DefaultControlPosition = {x: number|string, y: number|string}; export type EventHandler = (e: T) => void | false; // Missing in Flow diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 2255d10b..772cb416 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -257,6 +257,22 @@ describe('react-draggable', function () { assert(style.indexOf('transform: translate(100px, 100px);') >= 0); }); + it('should render with defaultPosition set as string transform and handle subsequent translate() for DOM nodes', function () { + let dragged = false; + drag = TestUtils.renderIntoDocument( + +
+ + ); + + const node = ReactDOM.findDOMNode(drag); + simulateMovementFromTo(drag, 0, 0, 100, 100); + + const style = node.getAttribute('style'); + assert(dragged === true); + assert(style.indexOf('translate(10%, 10%) translate(100px, 100px);') >= 0); + }); + it('should honor "x" axis', function () { let dragged = false; drag = TestUtils.renderIntoDocument( From 5b363efcdabc37d55cb69edef01d31f98b2231d9 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 27 Feb 2019 17:30:38 +0800 Subject: [PATCH 302/412] release v3.2.0 --- CHANGELOG.md | 5 ++++ bower.json | 2 +- dist/react-draggable.js | 44 ++++++++++++++++++++++----------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 40 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8567665..c2eb1926 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 3.2.0 (Feb 27, 2019) + +- Feature: `defaultPosition` now allows string offsets (like {x: '10%', y: '10%'}) then calculates deltas from there. See the examples and the PR [#361](https://github.com/mzabriskie/react-draggable/pull/361/). Thanks to @tnrich and @eric-burel. +- Bugfix: Export `DraggableEvent` type for Flow consumers. Thanks @elie222. + ### 3.1.1 (Dec 21, 2018) - Bugfix: Minor type change on DraggableEventHandler TypeScript export ([#374](https://github.com/mzabriskie/react-draggable/pull/374)) diff --git a/bower.json b/bower.json index ab7d07be..7cf8d50c 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.1.1", + "version": "3.2.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index cb18e5c9..aa04450b 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -1088,7 +1088,7 @@ }; }(); - /*:: import type {ControlPosition, MouseTouchEvent} from './types';*/ + /*:: import type {ControlPosition, DefaultControlPosition, MouseTouchEvent} from './types';*/ var matchesSelectorFunc = ''; @@ -1194,19 +1194,34 @@ return { x: x, y: y }; } - function createCSSTransform(_ref) /*: Object*/ { + function createCSSTransform(_ref, defaultPosition /*: DefaultControlPosition*/) /*: Object*/ { var x = _ref.x, y = _ref.y; - // Replace unitless items with px - return defineProperty({}, browserPrefixToKey('transform', browserPrefix), 'translate(' + x + 'px,' + y + 'px)'); + var translation = void 0; + if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) { + var defaultX = '' + (typeof defaultPosition.x === 'string' ? defaultPosition.x : defaultPosition.x + 'px'); + var defaultY = '' + (typeof defaultPosition.y === 'string' ? defaultPosition.y : defaultPosition.y + 'px'); + translation = 'translate(' + defaultX + ', ' + defaultY + ') translate(' + x + 'px,' + y + 'px)'; + } else { + translation = 'translate(' + x + 'px,' + y + 'px)'; + } + return defineProperty({}, browserPrefixToKey('transform', browserPrefix), translation); } - function createSVGTransform(_ref3) /*: string*/ { + function createSVGTransform(_ref3, defaultPosition /*: DefaultControlPosition*/) /*: string*/ { var x = _ref3.x, y = _ref3.y; - return 'translate(' + x + ',' + y + ')'; + var translation = void 0; + if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) { + var defaultX = typeof defaultPosition.x === 'string' ? defaultPosition.x : defaultPosition.x; + var defaultY = typeof defaultPosition.y === 'string' ? defaultPosition.y : defaultPosition.y; + translation = 'translate(' + defaultX + ', ' + defaultY + ') translate(' + x + ',' + y + ')'; + } else { + translation = 'translate(' + x + ',' + y + ')'; + } + return translation; } function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { @@ -1461,6 +1476,7 @@ };*/ /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;*/ /*:: export type ControlPosition = {x: number, y: number};*/ + /*:: export type DefaultControlPosition = {x: number|string, y: number|string};*/ // @@ -1861,7 +1877,7 @@ defaultClassName: string, defaultClassNameDragging: string, defaultClassNameDragged: string, - defaultPosition: ControlPosition, + defaultPosition: DefaultControlPosition, position: ControlPosition, scale: number };*/ @@ -1971,8 +1987,8 @@ dragged: false, // Current transform x and y. - x: props.position ? props.position.x : props.defaultPosition.x, - y: props.position ? props.position.y : props.defaultPosition.y, + x: props.position ? props.position.x : 0, + y: props.position ? props.position.y : 0, // Used for compensating for out-of-bounds drags slackX: 0, slackY: 0, @@ -2024,7 +2040,7 @@ var controlled = Boolean(this.props.position); var draggable = !controlled || this.state.dragging; - var position = this.props.position || this.props.defaultPosition; + var position = this.props.position || { x: 0, y: 0 }; var transformOpts = { // Set left if horizontal drag is enabled x: canDragX(this) && draggable ? this.state.x : position.x, @@ -2035,13 +2051,13 @@ // If this element was SVG, we use the `transform` attribute. if (this.state.isElementSVG) { - svgTransform = createSVGTransform(transformOpts); + svgTransform = createSVGTransform(transformOpts, this.props.defaultPosition); } else { // Add a CSS transform to move the element around. This allows us to move the element around // without worrying about whether or not it is relatively or absolutely positioned. // If the item you are dragging already has a transform set, wrap it in a so // has a clean slate. - style = createCSSTransform(transformOpts); + style = createCSSTransform(transformOpts, this.props.defaultPosition); } var _props = this.props, @@ -2144,8 +2160,8 @@ * ``` */ defaultPosition: propTypes.shape({ - x: propTypes.number, - y: propTypes.number + x: propTypes.oneOfType([propTypes.number, propTypes.string]), + y: propTypes.oneOfType([propTypes.number, propTypes.string]) }), /** diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index e618c128..f60a23f0 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","browserPrefix","createSVGTransform","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, DefaultControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): Object {\n let translation;\n if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) {\n const defaultX = `${(typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x + 'px'}`;\n const defaultY = `${(typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y + 'px'}`;\n translation = `translate(${defaultX}, ${defaultY}) translate(${x}px,${y}px)`;\n } else {\n translation = `translate(${x}px,${y}px)`;\n }\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): string {\n let translation;\n if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) {\n const defaultX = (typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x;\n const defaultY = (typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y;\n translation = `translate(${defaultX}, ${defaultY}) translate(${x},${y})`;\n } else {\n translation = `translate(${x},${y})`;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type DefaultControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DefaultControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: DefaultControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : 0,\n y: props.position ? props.position.y : 0,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || {x:0, y:0};\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.defaultPosition);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.defaultPosition);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","defaultPosition","translation","defaultX","defaultY","browserPrefix","createSVGTransform","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 68bbf756..e3dd5241 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var I={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},V=I.mouse,W=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!P(e.target,o.props.handle,n)||o.props.cancel&&P(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=_(e,a,o);if(null!=i){var s=i.x,u=i.y,l=L(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&R(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,V.move,o.handleDrag),C(r,V.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=_(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=L(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=_(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=L(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&X(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,V.move,o.handleDrag),j(s.ownerDocument,V.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return V=I.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return V=I.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return V=I.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return V=I.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,I.mouse.move,this.handleDrag),j(n,I.touch.move,this.handleDrag),j(n,I.mouse.stop,this.handleDragStop),j(n,I.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&X(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);W.displayName="DraggableCore",W.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},W.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var B=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,A(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=A(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=Y(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,A(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},e}return T(r,n),D(r,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o,a,i={},s=null,u=!Boolean(this.props.position)||this.state.dragging,l=this.props.position||this.props.defaultPosition,c={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&u?this.state.x:l.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&u?this.state.y:l.y};this.state.isElementSVG?s="translate("+(a=c).x+","+a.y+")":(r=(n=c).x,o=n.y,i=x({},v("transform",w),"translate("+r+"px,"+o+"px)"));var p=this.props,d=p.defaultClassName,g=p.defaultClassNameDragging,h=p.defaultClassNameDragged,m=e.Children.only(this.props.children),y=f(m.props.className||"",d,(x(t={},g,this.state.dragging),x(t,h,this.state.dragged),t));return e.createElement(W,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(m,{className:y,style:O({},m.props.style,i),transform:s}))}}]),r}(e.Component);return B.displayName="Draggable",B.propTypes=O({},W.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),B.defaultProps=O({},W.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),B.default=B,B.DraggableCore=W,B}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var I={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},V=I.mouse,W=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!P(e.target,o.props.handle,n)||o.props.cancel&&P(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=_(e,a,o);if(null!=i){var s=i.x,u=i.y,l=L(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&R(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,V.move,o.handleDrag),C(r,V.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=_(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=L(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=_(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=L(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&X(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,V.move,o.handleDrag),j(s.ownerDocument,V.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return V=I.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return V=I.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return V=I.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return V=I.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,I.mouse.move,this.handleDrag),j(n,I.touch.move,this.handleDrag),j(n,I.mouse.stop,this.handleDragStop),j(n,I.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&X(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);W.displayName="DraggableCore",W.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:m,style:m,transform:m},W.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var B=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,A(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=A(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=Y(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,A(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:0,y:t.position?t.position.y:0,slackX:0,slackY:0,isElementSVG:!1},e}return T(r,n),D(r,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o,a,i={},s=null,u=!Boolean(this.props.position)||this.state.dragging,l=this.props.position||{x:0,y:0},c={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&u?this.state.x:l.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&u?this.state.y:l.y};this.state.isElementSVG?(n=c,r=this.props.defaultPosition,o=n.x,a=n.y,s=!r||0===r.x&&0===r.y?"translate("+o+","+a+")":"translate("+(r.x,r.x)+", "+(r.y,r.y)+") translate("+o+","+a+")"):i=function(t,e){var n=t.x,r=t.y,o=void 0;return o=!e||0===e.x&&0===e.y?"translate("+n+"px,"+r+"px)":"translate("+("string"==typeof e.x?e.x:e.x+"px")+", "+("string"==typeof e.y?e.y:e.y+"px")+") translate("+n+"px,"+r+"px)",x({},v("transform",w),o)}(c,this.props.defaultPosition);var p=this.props,d=p.defaultClassName,g=p.defaultClassNameDragging,h=p.defaultClassNameDragged,y=e.Children.only(this.props.children),m=f(y.props.className||"",d,(x(t={},g,this.state.dragging),x(t,h,this.state.dragged),t));return e.createElement(W,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(y,{className:m,style:O({},y.props.style,i),transform:s}))}}]),r}(e.Component);return B.displayName="Draggable",B.propTypes=O({},W.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:m,style:m,transform:m}),B.defaultProps=O({},W.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),B.default=B,B.DraggableCore=W,B}); //# sourceMappingURL=react-draggable.min.js.map diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index c4efc601..61518db3 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","x","y","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, DefaultControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): Object {\n let translation;\n if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) {\n const defaultX = `${(typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x + 'px'}`;\n const defaultY = `${(typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y + 'px'}`;\n translation = `translate(${defaultX}, ${defaultY}) translate(${x}px,${y}px)`;\n } else {\n translation = `translate(${x}px,${y}px)`;\n }\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): string {\n let translation;\n if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) {\n const defaultX = (typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x;\n const defaultY = (typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y;\n translation = `translate(${defaultX}, ${defaultY}) translate(${x},${y})`;\n } else {\n translation = `translate(${x},${y})`;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type DefaultControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DefaultControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: DefaultControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : 0,\n y: props.position ? props.position.y : 0,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || {x:0, y:0};\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.defaultPosition);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.defaultPosition);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","x","y","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","warn","SVGElement","isElementSVG","nextProps","defaultPosition","svgTransform","transformOpts","axis","canDragX","canDragY","translation","browserPrefix","createCSSTransform","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 33d28051..d65118c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.1.1", + "version": "3.2.0", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 8b1449c05d6d66376f2c20a94a28d112e106453a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 1 Mar 2019 15:07:09 +0800 Subject: [PATCH 303/412] Revert "feat(defaultPosition): now allows strings (#361)" This reverts commit aa0a6b4bf1375ae57a6bfa8952c6ef9ed00ea2bf. --- example/example.js | 5 ----- lib/Draggable.js | 18 +++++++++--------- lib/DraggableCore.js | 1 - lib/utils/domFns.js | 27 ++++++--------------------- lib/utils/types.js | 1 - specs/draggable.spec.jsx | 16 ---------------- 6 files changed, 15 insertions(+), 53 deletions(-) diff --git a/example/example.js b/example/example.js index f28cee86..8b9f10b7 100644 --- a/example/example.js +++ b/example/example.js @@ -137,11 +137,6 @@ var App = React.createClass({ {"I have a default position of {x: 25, y: 25}, so I'm slightly offset."}
- -
- {'I have a default position based on percents {x: \'-10%\', y: \'-10%\'}, so I\'m slightly offset.'} -
-
My position can be changed programmatically.
diff --git a/lib/Draggable.js b/lib/Draggable.js index 78b7cfb7..7fcfdc02 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -7,7 +7,7 @@ import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import DraggableCore from './DraggableCore'; -import type {ControlPosition, DefaultControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; +import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; import log from './utils/log'; import type {DraggableEventHandler} from './utils/types'; import type {Element as ReactElement} from 'react'; @@ -27,7 +27,7 @@ export type DraggableProps = { defaultClassName: string, defaultClassNameDragging: string, defaultClassNameDragged: string, - defaultPosition: DefaultControlPosition, + defaultPosition: ControlPosition, position: ControlPosition, scale: number }; @@ -118,8 +118,8 @@ export default class Draggable extends React.Component so // has a clean slate. - style = createCSSTransform(transformOpts, this.props.defaultPosition); + style = createCSSTransform(transformOpts); } const { diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 844f5d3c..a31cb3af 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -52,7 +52,6 @@ export type DraggableData = { export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void; export type ControlPosition = {x: number, y: number}; -export type DefaultControlPosition = {x: number|string, y: number|string}; export type DraggableCoreProps = { allowAnyClick: boolean, diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index be9bdbaa..4cbb52a4 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -2,7 +2,7 @@ import {findInArray, isFunction, int} from './shims'; import browserPrefix, {browserPrefixToKey} from './getPrefix'; -import type {ControlPosition, DefaultControlPosition, MouseTouchEvent} from './types'; +import type {ControlPosition, MouseTouchEvent} from './types'; let matchesSelectorFunc = ''; export function matchesSelector(el: Node, selector: string): boolean { @@ -109,28 +109,13 @@ export function offsetXYFromParent(evt: {clientX: number, clientY: number}, offs return {x, y}; } -export function createCSSTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): Object { - let translation; - if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) { - const defaultX = `${(typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x + 'px'}`; - const defaultY = `${(typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y + 'px'}`; - translation = `translate(${defaultX}, ${defaultY}) translate(${x}px,${y}px)`; - } else { - translation = `translate(${x}px,${y}px)`; - } - return {[browserPrefixToKey('transform', browserPrefix)]: translation }; +export function createCSSTransform({x, y}: {x: number, y: number}): Object { + // Replace unitless items with px + return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'}; } -export function createSVGTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): string { - let translation; - if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) { - const defaultX = (typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x; - const defaultY = (typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y; - translation = `translate(${defaultX}, ${defaultY}) translate(${x},${y})`; - } else { - translation = `translate(${x},${y})`; - } - return translation; +export function createSVGTransform({x, y}: {x: number, y: number}): string { + return 'translate(' + x + ',' + y + ')'; } export function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} { diff --git a/lib/utils/types.js b/lib/utils/types.js index fb63372f..e701e81f 100644 --- a/lib/utils/types.js +++ b/lib/utils/types.js @@ -14,7 +14,6 @@ export type Bounds = { left: number, top: number, right: number, bottom: number }; export type ControlPosition = {x: number, y: number}; -export type DefaultControlPosition = {x: number|string, y: number|string}; export type EventHandler = (e: T) => void | false; // Missing in Flow diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 772cb416..2255d10b 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -257,22 +257,6 @@ describe('react-draggable', function () { assert(style.indexOf('transform: translate(100px, 100px);') >= 0); }); - it('should render with defaultPosition set as string transform and handle subsequent translate() for DOM nodes', function () { - let dragged = false; - drag = TestUtils.renderIntoDocument( - -
- - ); - - const node = ReactDOM.findDOMNode(drag); - simulateMovementFromTo(drag, 0, 0, 100, 100); - - const style = node.getAttribute('style'); - assert(dragged === true); - assert(style.indexOf('translate(10%, 10%) translate(100px, 100px);') >= 0); - }); - it('should honor "x" axis', function () { let dragged = false; drag = TestUtils.renderIntoDocument( From 8a95095837023cae90c589d0fa540cc2536e2182 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 1 Mar 2019 15:08:26 +0800 Subject: [PATCH 304/412] release v3.2.1 --- CHANGELOG.md | 8 +++++- bower.json | 2 +- dist/react-draggable.js | 44 +++++++++++---------------------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 26 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2eb1926..f666cbcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -### 3.2.0 (Feb 27, 2019) +### 3.2.1 (Mar 1, 2019) + +- Reverted https://github.com/mzabriskie/react-draggable/pull/361. + +### ~3.2.0 (Feb 27, 2019)~ + +> Note: this release has been pulled due to an inadvertent breaking change. See https://github.com/mzabriskie/react-draggable/issues/391 - Feature: `defaultPosition` now allows string offsets (like {x: '10%', y: '10%'}) then calculates deltas from there. See the examples and the PR [#361](https://github.com/mzabriskie/react-draggable/pull/361/). Thanks to @tnrich and @eric-burel. - Bugfix: Export `DraggableEvent` type for Flow consumers. Thanks @elie222. diff --git a/bower.json b/bower.json index 7cf8d50c..d72c9072 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.2.0", + "version": "3.2.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index aa04450b..cb18e5c9 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -1088,7 +1088,7 @@ }; }(); - /*:: import type {ControlPosition, DefaultControlPosition, MouseTouchEvent} from './types';*/ + /*:: import type {ControlPosition, MouseTouchEvent} from './types';*/ var matchesSelectorFunc = ''; @@ -1194,34 +1194,19 @@ return { x: x, y: y }; } - function createCSSTransform(_ref, defaultPosition /*: DefaultControlPosition*/) /*: Object*/ { + function createCSSTransform(_ref) /*: Object*/ { var x = _ref.x, y = _ref.y; - var translation = void 0; - if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) { - var defaultX = '' + (typeof defaultPosition.x === 'string' ? defaultPosition.x : defaultPosition.x + 'px'); - var defaultY = '' + (typeof defaultPosition.y === 'string' ? defaultPosition.y : defaultPosition.y + 'px'); - translation = 'translate(' + defaultX + ', ' + defaultY + ') translate(' + x + 'px,' + y + 'px)'; - } else { - translation = 'translate(' + x + 'px,' + y + 'px)'; - } - return defineProperty({}, browserPrefixToKey('transform', browserPrefix), translation); + // Replace unitless items with px + return defineProperty({}, browserPrefixToKey('transform', browserPrefix), 'translate(' + x + 'px,' + y + 'px)'); } - function createSVGTransform(_ref3, defaultPosition /*: DefaultControlPosition*/) /*: string*/ { + function createSVGTransform(_ref3) /*: string*/ { var x = _ref3.x, y = _ref3.y; - var translation = void 0; - if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) { - var defaultX = typeof defaultPosition.x === 'string' ? defaultPosition.x : defaultPosition.x; - var defaultY = typeof defaultPosition.y === 'string' ? defaultPosition.y : defaultPosition.y; - translation = 'translate(' + defaultX + ', ' + defaultY + ') translate(' + x + ',' + y + ')'; - } else { - translation = 'translate(' + x + ',' + y + ')'; - } - return translation; + return 'translate(' + x + ',' + y + ')'; } function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { @@ -1476,7 +1461,6 @@ };*/ /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;*/ /*:: export type ControlPosition = {x: number, y: number};*/ - /*:: export type DefaultControlPosition = {x: number|string, y: number|string};*/ // @@ -1877,7 +1861,7 @@ defaultClassName: string, defaultClassNameDragging: string, defaultClassNameDragged: string, - defaultPosition: DefaultControlPosition, + defaultPosition: ControlPosition, position: ControlPosition, scale: number };*/ @@ -1987,8 +1971,8 @@ dragged: false, // Current transform x and y. - x: props.position ? props.position.x : 0, - y: props.position ? props.position.y : 0, + x: props.position ? props.position.x : props.defaultPosition.x, + y: props.position ? props.position.y : props.defaultPosition.y, // Used for compensating for out-of-bounds drags slackX: 0, slackY: 0, @@ -2040,7 +2024,7 @@ var controlled = Boolean(this.props.position); var draggable = !controlled || this.state.dragging; - var position = this.props.position || { x: 0, y: 0 }; + var position = this.props.position || this.props.defaultPosition; var transformOpts = { // Set left if horizontal drag is enabled x: canDragX(this) && draggable ? this.state.x : position.x, @@ -2051,13 +2035,13 @@ // If this element was SVG, we use the `transform` attribute. if (this.state.isElementSVG) { - svgTransform = createSVGTransform(transformOpts, this.props.defaultPosition); + svgTransform = createSVGTransform(transformOpts); } else { // Add a CSS transform to move the element around. This allows us to move the element around // without worrying about whether or not it is relatively or absolutely positioned. // If the item you are dragging already has a transform set, wrap it in a so // has a clean slate. - style = createCSSTransform(transformOpts, this.props.defaultPosition); + style = createCSSTransform(transformOpts); } var _props = this.props, @@ -2160,8 +2144,8 @@ * ``` */ defaultPosition: propTypes.shape({ - x: propTypes.oneOfType([propTypes.number, propTypes.string]), - y: propTypes.oneOfType([propTypes.number, propTypes.string]) + x: propTypes.number, + y: propTypes.number }), /** diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index f60a23f0..e618c128 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, DefaultControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): Object {\n let translation;\n if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) {\n const defaultX = `${(typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x + 'px'}`;\n const defaultY = `${(typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y + 'px'}`;\n translation = `translate(${defaultX}, ${defaultY}) translate(${x}px,${y}px)`;\n } else {\n translation = `translate(${x}px,${y}px)`;\n }\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): string {\n let translation;\n if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) {\n const defaultX = (typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x;\n const defaultY = (typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y;\n translation = `translate(${defaultX}, ${defaultY}) translate(${x},${y})`;\n } else {\n translation = `translate(${x},${y})`;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type DefaultControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DefaultControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: DefaultControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : 0,\n y: props.position ? props.position.y : 0,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || {x:0, y:0};\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.defaultPosition);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.defaultPosition);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","defaultPosition","translation","defaultX","defaultY","browserPrefix","createSVGTransform","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","browserPrefix","createSVGTransform","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index e3dd5241..68bbf756 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var I={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},V=I.mouse,W=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!P(e.target,o.props.handle,n)||o.props.cancel&&P(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=_(e,a,o);if(null!=i){var s=i.x,u=i.y,l=L(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&R(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,V.move,o.handleDrag),C(r,V.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=_(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=L(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=_(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=L(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&X(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,V.move,o.handleDrag),j(s.ownerDocument,V.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return V=I.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return V=I.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return V=I.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return V=I.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,I.mouse.move,this.handleDrag),j(n,I.touch.move,this.handleDrag),j(n,I.mouse.stop,this.handleDragStop),j(n,I.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&X(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);W.displayName="DraggableCore",W.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:m,style:m,transform:m},W.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var B=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,A(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=A(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=Y(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,A(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:0,y:t.position?t.position.y:0,slackX:0,slackY:0,isElementSVG:!1},e}return T(r,n),D(r,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o,a,i={},s=null,u=!Boolean(this.props.position)||this.state.dragging,l=this.props.position||{x:0,y:0},c={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&u?this.state.x:l.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&u?this.state.y:l.y};this.state.isElementSVG?(n=c,r=this.props.defaultPosition,o=n.x,a=n.y,s=!r||0===r.x&&0===r.y?"translate("+o+","+a+")":"translate("+(r.x,r.x)+", "+(r.y,r.y)+") translate("+o+","+a+")"):i=function(t,e){var n=t.x,r=t.y,o=void 0;return o=!e||0===e.x&&0===e.y?"translate("+n+"px,"+r+"px)":"translate("+("string"==typeof e.x?e.x:e.x+"px")+", "+("string"==typeof e.y?e.y:e.y+"px")+") translate("+n+"px,"+r+"px)",x({},v("transform",w),o)}(c,this.props.defaultPosition);var p=this.props,d=p.defaultClassName,g=p.defaultClassNameDragging,h=p.defaultClassNameDragged,y=e.Children.only(this.props.children),m=f(y.props.className||"",d,(x(t={},g,this.state.dragging),x(t,h,this.state.dragged),t));return e.createElement(W,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(y,{className:m,style:O({},y.props.style,i),transform:s}))}}]),r}(e.Component);return B.displayName="Draggable",B.propTypes=O({},W.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:m,style:m,transform:m}),B.defaultProps=O({},W.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),B.default=B,B.DraggableCore=W,B}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var I={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},V=I.mouse,W=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!P(e.target,o.props.handle,n)||o.props.cancel&&P(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=_(e,a,o);if(null!=i){var s=i.x,u=i.y,l=L(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&R(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,V.move,o.handleDrag),C(r,V.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=_(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=L(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=_(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=L(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&X(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,V.move,o.handleDrag),j(s.ownerDocument,V.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return V=I.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return V=I.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return V=I.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return V=I.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,I.mouse.move,this.handleDrag),j(n,I.touch.move,this.handleDrag),j(n,I.mouse.stop,this.handleDragStop),j(n,I.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&X(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);W.displayName="DraggableCore",W.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},W.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var B=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,A(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=A(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=Y(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,A(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},e}return T(r,n),D(r,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o,a,i={},s=null,u=!Boolean(this.props.position)||this.state.dragging,l=this.props.position||this.props.defaultPosition,c={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&u?this.state.x:l.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&u?this.state.y:l.y};this.state.isElementSVG?s="translate("+(a=c).x+","+a.y+")":(r=(n=c).x,o=n.y,i=x({},v("transform",w),"translate("+r+"px,"+o+"px)"));var p=this.props,d=p.defaultClassName,g=p.defaultClassNameDragging,h=p.defaultClassNameDragged,m=e.Children.only(this.props.children),y=f(m.props.className||"",d,(x(t={},g,this.state.dragging),x(t,h,this.state.dragged),t));return e.createElement(W,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(m,{className:y,style:O({},m.props.style,i),transform:s}))}}]),r}(e.Component);return B.displayName="Draggable",B.propTypes=O({},W.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),B.defaultProps=O({},W.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),B.default=B,B.DraggableCore=W,B}); //# sourceMappingURL=react-draggable.min.js.map diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 61518db3..c4efc601 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, DefaultControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): Object {\n let translation;\n if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) {\n const defaultX = `${(typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x + 'px'}`;\n const defaultY = `${(typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y + 'px'}`;\n translation = `translate(${defaultX}, ${defaultY}) translate(${x}px,${y}px)`;\n } else {\n translation = `translate(${x}px,${y}px)`;\n }\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform({x, y}: ControlPosition, defaultPosition: DefaultControlPosition): string {\n let translation;\n if (defaultPosition && (defaultPosition.x !== 0 || defaultPosition.y !== 0)) {\n const defaultX = (typeof defaultPosition.x === 'string') ? defaultPosition.x : defaultPosition.x;\n const defaultY = (typeof defaultPosition.y === 'string') ? defaultPosition.y : defaultPosition.y;\n translation = `translate(${defaultX}, ${defaultY}) translate(${x},${y})`;\n } else {\n translation = `translate(${x},${y})`;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type DefaultControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DefaultControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: DefaultControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : 0,\n y: props.position ? props.position.y : 0,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || {x:0, y:0};\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.defaultPosition);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.defaultPosition);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","x","y","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","warn","SVGElement","isElementSVG","nextProps","defaultPosition","svgTransform","transformOpts","axis","canDragX","canDragY","translation","browserPrefix","createCSSTransform","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","x","y","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index d65118c2..058ab107 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.2.0", + "version": "3.2.1", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 8212c0edf14b90a80420e805fa546945a7c3bfd1 Mon Sep 17 00:00:00 2001 From: Thomas Rich Date: Tue, 26 Mar 2019 16:07:58 -0700 Subject: [PATCH 305/412] adding initialPosition prop to (#393) * adding initialPosition prop to * changing initialPosition to positionOffset * fixing missed rename * Delete pnpm-debug.log * Delete package-lock.json * Delete shrinkwrap.yaml * making requested changes in https://github.com/mzabriskie/react-draggable/pull/393 --- example/example.js | 5 +++++ lib/Draggable.js | 11 ++++++++--- lib/DraggableCore.js | 1 + lib/utils/domFns.js | 22 ++++++++++++++++------ lib/utils/types.js | 1 + package.json | 2 +- specs/draggable.spec.jsx | 16 ++++++++++++++++ 7 files changed, 48 insertions(+), 10 deletions(-) diff --git a/example/example.js b/example/example.js index 8b9f10b7..641b3ca0 100644 --- a/example/example.js +++ b/example/example.js @@ -137,6 +137,11 @@ var App = React.createClass({ {"I have a default position of {x: 25, y: 25}, so I'm slightly offset."}
+ +
+ {'I have a default position based on percents {x: \'-10%\', y: \'-10%\'}, so I\'m slightly offset.'} +
+
My position can be changed programmatically.
diff --git a/lib/Draggable.js b/lib/Draggable.js index 7fcfdc02..3d7ea473 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -7,7 +7,7 @@ import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import DraggableCore from './DraggableCore'; -import type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; +import type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; import log from './utils/log'; import type {DraggableEventHandler} from './utils/types'; import type {Element as ReactElement} from 'react'; @@ -28,6 +28,7 @@ export type DraggableProps = { defaultClassNameDragging: string, defaultClassNameDragged: string, defaultPosition: ControlPosition, + positionOffset: PositionOffsetControlPosition, position: ControlPosition, scale: number }; @@ -121,6 +122,10 @@ export default class Draggable extends React.Component so // has a clean slate. - style = createCSSTransform(transformOpts); + style = createCSSTransform(transformOpts, this.props.positionOffset); } const { diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index a31cb3af..773194ef 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -52,6 +52,7 @@ export type DraggableData = { export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void; export type ControlPosition = {x: number, y: number}; +export type PositionOffsetControlPosition = {x: number|string, y: number|string}; export type DraggableCoreProps = { allowAnyClick: boolean, diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 4cbb52a4..6cea521a 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -2,7 +2,7 @@ import {findInArray, isFunction, int} from './shims'; import browserPrefix, {browserPrefixToKey} from './getPrefix'; -import type {ControlPosition, MouseTouchEvent} from './types'; +import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types'; let matchesSelectorFunc = ''; export function matchesSelector(el: Node, selector: string): boolean { @@ -109,13 +109,23 @@ export function offsetXYFromParent(evt: {clientX: number, clientY: number}, offs return {x, y}; } -export function createCSSTransform({x, y}: {x: number, y: number}): Object { - // Replace unitless items with px - return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'}; +export function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object { + const translation = getTranslation(controlPos, positionOffset, 'px'); + return {[browserPrefixToKey('transform', browserPrefix)]: translation }; } -export function createSVGTransform({x, y}: {x: number, y: number}): string { - return 'translate(' + x + ',' + y + ')'; +export function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string { + const translation = getTranslation(controlPos, positionOffset, ''); + return translation; +} +export function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string { + let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`; + if (positionOffset) { + const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`; + const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`; + translation = `translate(${defaultX}, ${defaultY})` + translation; + } + return translation; } export function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} { diff --git a/lib/utils/types.js b/lib/utils/types.js index e701e81f..5321f63c 100644 --- a/lib/utils/types.js +++ b/lib/utils/types.js @@ -14,6 +14,7 @@ export type Bounds = { left: number, top: number, right: number, bottom: number }; export type ControlPosition = {x: number, y: number}; +export type PositionOffsetControlPosition = {x: number|string, y: number|string}; export type EventHandler = (e: T) => void | false; // Missing in Flow diff --git a/package.json b/package.json index 058ab107..10155cb1 100644 --- a/package.json +++ b/package.json @@ -90,4 +90,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} \ No newline at end of file +} diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 2255d10b..5609529f 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -257,6 +257,22 @@ describe('react-draggable', function () { assert(style.indexOf('transform: translate(100px, 100px);') >= 0); }); + it('should render with positionOffset set as string transform and handle subsequent translate() for DOM nodes', function () { + let dragged = false; + drag = TestUtils.renderIntoDocument( + +
+ + ); + + const node = ReactDOM.findDOMNode(drag); + simulateMovementFromTo(drag, 0, 0, 100, 100); + + const style = node.getAttribute('style'); + assert(dragged === true); + assert(style.indexOf('translate(10%, 10%) translate(100px, 100px);') >= 0); + }); + it('should honor "x" axis', function () { let dragged = false; drag = TestUtils.renderIntoDocument( From 63098699bc222b4bd3356864a05aaeb6d0a92d1f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 18 Apr 2019 18:22:45 -0700 Subject: [PATCH 306/412] docs(README): add positionOffset prop, thanks @tnrich --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 8a59620f..ff6e0c0e 100644 --- a/README.md +++ b/README.md @@ -219,6 +219,12 @@ onStop: DraggableEventHandler, // if you need to have direct control of the element. position: {x: number, y: number} +// A position offset to start with. Useful for giving an initial position +// to the element. Differs from `defaultPosition` in that it does not +// affect the postiion returned in draggable callbacks, and in that it +// accepts strings, like `{x: '10%', y: '10%'}`. +positionOffset: {x: number | string, y: number | string}, + // Specifies the scale of the canvas your are dragging this element on. This allows // you to, for example, get the correct drag deltas while you are zoomed in or out via // a transform or matrix in the parent of this element. From 0dfb65bd58793856c2f3d1a0cf545feb359e71ad Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 18 Apr 2019 18:23:23 -0700 Subject: [PATCH 307/412] release v3.3.0 --- CHANGELOG.md | 4 ++++ bower.json | 2 +- dist/react-draggable.js | 41 ++++++++++++++++++++++----------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 4 ++-- 7 files changed, 37 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f666cbcb..6e760927 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 3.3.0 (Apr 18, 2019) + +- Addition of `positionOffset` prop, which can be Numbers (px) or string percentages (like `"10%"`). See the README for more. + ### 3.2.1 (Mar 1, 2019) - Reverted https://github.com/mzabriskie/react-draggable/pull/361. diff --git a/bower.json b/bower.json index d72c9072..208d32a0 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.2.1", + "version": "3.3.0", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index cb18e5c9..302d5ebf 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -1088,7 +1088,7 @@ }; }(); - /*:: import type {ControlPosition, MouseTouchEvent} from './types';*/ + /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/ var matchesSelectorFunc = ''; @@ -1194,19 +1194,26 @@ return { x: x, y: y }; } - function createCSSTransform(_ref) /*: Object*/ { - var x = _ref.x, - y = _ref.y; - - // Replace unitless items with px - return defineProperty({}, browserPrefixToKey('transform', browserPrefix), 'translate(' + x + 'px,' + y + 'px)'); + function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/ { + var translation = getTranslation(controlPos, positionOffset, 'px'); + return defineProperty({}, browserPrefixToKey('transform', browserPrefix), translation); } - function createSVGTransform(_ref3) /*: string*/ { - var x = _ref3.x, - y = _ref3.y; - - return 'translate(' + x + ',' + y + ')'; + function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/ { + var translation = getTranslation(controlPos, positionOffset, ''); + return translation; + } + function getTranslation(_ref2, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/ { + var x = _ref2.x, + y = _ref2.y; + + var translation = 'translate(' + x + unitSuffix + ',' + y + unitSuffix + ')'; + if (positionOffset) { + var defaultX = '' + (typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix); + var defaultY = '' + (typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix); + translation = 'translate(' + defaultX + ', ' + defaultY + ')' + translation; + } + return translation; } function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { @@ -1461,6 +1468,7 @@ };*/ /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;*/ /*:: export type ControlPosition = {x: number, y: number};*/ + /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/ // @@ -1862,6 +1870,7 @@ defaultClassNameDragging: string, defaultClassNameDragged: string, defaultPosition: ControlPosition, + positionOffset: PositionOffsetControlPosition, position: ControlPosition, scale: number };*/ @@ -2035,13 +2044,13 @@ // If this element was SVG, we use the `transform` attribute. if (this.state.isElementSVG) { - svgTransform = createSVGTransform(transformOpts); + svgTransform = createSVGTransform(transformOpts, this.props.positionOffset); } else { // Add a CSS transform to move the element around. This allows us to move the element around // without worrying about whether or not it is relatively or absolutely positioned. // If the item you are dragging already has a transform set, wrap it in a so // has a clean slate. - style = createCSSTransform(transformOpts); + style = createCSSTransform(transformOpts, this.props.positionOffset); } var _props = this.props, @@ -2147,6 +2156,10 @@ x: propTypes.number, y: propTypes.number }), + positionOffset: propTypes.shape({ + x: propTypes.oneOfType([propTypes.number, propTypes.string]), + y: propTypes.oneOfType([propTypes.number, propTypes.string]) + }), /** * `position`, if present, defines the current position of the element. diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index e618c128..888eda2e 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","browserPrefix","createSVGTransform","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","controlPos","positionOffset","translation","getTranslation","browserPrefix","createSVGTransform","unitSuffix","defaultX","defaultY","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 68bbf756..40e72ca3 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var I={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},V=I.mouse,W=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!P(e.target,o.props.handle,n)||o.props.cancel&&P(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=_(e,a,o);if(null!=i){var s=i.x,u=i.y,l=L(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&R(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,V.move,o.handleDrag),C(r,V.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=_(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=L(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=_(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=L(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&X(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,V.move,o.handleDrag),j(s.ownerDocument,V.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return V=I.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return V=I.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return V=I.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return V=I.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,I.mouse.move,this.handleDrag),j(n,I.touch.move,this.handleDrag),j(n,I.mouse.stop,this.handleDragStop),j(n,I.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&X(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);W.displayName="DraggableCore",W.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},W.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var B=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,A(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=A(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=Y(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,A(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},e}return T(r,n),D(r,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o,a,i={},s=null,u=!Boolean(this.props.position)||this.state.dragging,l=this.props.position||this.props.defaultPosition,c={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&u?this.state.x:l.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&u?this.state.y:l.y};this.state.isElementSVG?s="translate("+(a=c).x+","+a.y+")":(r=(n=c).x,o=n.y,i=x({},v("transform",w),"translate("+r+"px,"+o+"px)"));var p=this.props,d=p.defaultClassName,g=p.defaultClassNameDragging,h=p.defaultClassNameDragged,m=e.Children.only(this.props.children),y=f(m.props.className||"",d,(x(t={},g,this.state.dragging),x(t,h,this.state.dragged),t));return e.createElement(W,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(m,{className:y,style:O({},m.props.style,i),transform:s}))}}]),r}(e.Component);return B.displayName="Draggable",B.propTypes=O({},W.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),B.defaultProps=O({},W.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),B.default=B,B.DraggableCore=W,B}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var V={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},W=V.mouse,B=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!P(e.target,o.props.handle,n)||o.props.cancel&&P(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=L(e,a,o);if(null!=i){var s=i.x,u=i.y,l=A(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&X(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,W.move,o.handleDrag),C(r,W.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=L(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=A(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=L(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=A(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&Y(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,W.move,o.handleDrag),j(s.ownerDocument,W.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return W=V.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return W=V.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return W=V.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return W=V.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,V.mouse.move,this.handleDrag),j(n,V.touch.move,this.handleDrag),j(n,V.mouse.stop,this.handleDragStop),j(n,V.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&Y(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);B.displayName="DraggableCore",B.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},B.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var H=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,U(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=U(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=_(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,U(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},e}return T(r,n),D(r,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o={},a=null,i=!Boolean(this.props.position)||this.state.dragging,s=this.props.position||this.props.defaultPosition,u={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&i?this.state.x:s.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&i?this.state.y:s.y};this.state.isElementSVG?(n=u,r=this.props.positionOffset,a=R(n,r,"")):o=function(t,e){var n=R(t,e,"px");return x({},v("transform",w),n)}(u,this.props.positionOffset);var l=this.props,c=l.defaultClassName,p=l.defaultClassNameDragging,d=l.defaultClassNameDragged,g=e.Children.only(this.props.children),h=f(g.props.className||"",c,(x(t={},p,this.state.dragging),x(t,d,this.state.dragged),t));return e.createElement(B,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(g,{className:h,style:O({},g.props.style,o),transform:a}))}}]),r}(e.Component);return H.displayName="Draggable",H.propTypes=O({},B.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),positionOffset:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),H.defaultProps=O({},B.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),H.default=H,H.DraggableCore=B,H}); //# sourceMappingURL=react-draggable.min.js.map diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index c4efc601..c1339b34 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform({x, y}: {x: number, y: number}): Object {\n // Replace unitless items with px\n return {[browserPrefixToKey('transform', browserPrefix)]: 'translate(' + x + 'px,' + y + 'px)'};\n}\n\nexport function createSVGTransform({x, y}: {x: number, y: number}): string {\n return 'translate(' + x + ',' + y + ')';\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","x","y","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","getTranslation","positionOffset","unitSuffix","translation","x","y","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","controlPos","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","createCSSTransform","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 10155cb1..a9a0f8e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.2.1", + "version": "3.3.0", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", @@ -90,4 +90,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} +} \ No newline at end of file From bc2de929e709b1d07b4ced5de23b177e827b4f7b Mon Sep 17 00:00:00 2001 From: Varad Chemburkar Date: Tue, 2 Jul 2019 14:35:07 -0400 Subject: [PATCH 308/412] add positionOffset to typings (#411) --- typings/index.d.ts | 3 +++ typings/test.tsx | 1 + 2 files changed, 4 insertions(+) diff --git a/typings/index.d.ts b/typings/index.d.ts index 1a7c93a7..cee91a44 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -15,6 +15,7 @@ declare module 'react-draggable' { defaultClassNameDragging: string, defaultClassNameDragged: string, defaultPosition: ControlPosition, + positionOffset: PositionOffsetControlPosition, position: ControlPosition } @@ -37,6 +38,8 @@ declare module 'react-draggable' { export type ControlPosition = {x: number, y: number}; + export type PositionOffsetControlPosition = {x: number|string, y: number|string}; + export interface DraggableCoreProps { allowAnyClick: boolean, cancel: string, diff --git a/typings/test.tsx b/typings/test.tsx index 64f6d998..17377dcc 100644 --- a/typings/test.tsx +++ b/typings/test.tsx @@ -28,6 +28,7 @@ ReactDOM.render( defaultClassNameDragging={'dragging'} defaultClassNameDragged={'dragged'} defaultPosition={{x: 0, y: 0}} + positionOffset={{x: 0, y: 0}} position={{x: 50, y: 50}}>
From 2ffa52f2abbead1cf24718308ab4696d84c34954 Mon Sep 17 00:00:00 2001 From: Zach Panzarino Date: Mon, 12 Aug 2019 13:51:13 -0400 Subject: [PATCH 309/412] Change link in readme to example source (#418) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ff6e0c0e..a2959edb 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ an intermediate wrapper (`...`) in this case ### Draggable Usage View the [Demo](http://mzabriskie.github.io/react-draggable/example/) and its -[source](/example/index.html) for more. +[source](/example/example.js) for more. ```js import React from 'react'; From 34086a93cb813c88b85c9cbdf4f97fa46d754f4e Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 12 Aug 2019 14:01:19 -0400 Subject: [PATCH 310/412] chore(makefile): use yarn install of npm since we save a yarn.lock anyway... --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index ee571ba6..d7513bae 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # Mostly lifted from https://andreypopp.com/posts/2013-05-16-makefile-recipes-for-node-js.html # Thanks @andreypopp -export BIN := $(shell npm bin) +export BIN := $(shell yarn bin) DIST = dist LIB = $(DIST)/react-draggable.js MIN = $(DIST)/react-draggable.min.js @@ -20,7 +20,7 @@ build: $(LIB) $(MIN) # Allows usage of `make install`, `make link` install link: - @npm $@ + @yarn $@ dist/%.js: $(BIN) @$(BIN)/rollup -c @@ -60,4 +60,4 @@ release-major: test clean build publish: clean build git push --tags origin HEAD:master - npm publish + yarn publish From a2d5dfb4df1a688b946ee17e3d3444cd303c3041 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 12 Aug 2019 14:02:16 -0400 Subject: [PATCH 311/412] fix(react): fix componentWillMount 16.9 deprecation Fixes #420 --- lib/Draggable.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index 3d7ea473..96156fd7 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -192,11 +192,9 @@ export default class Draggable extends React.Component, without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); From bc828804162f3dfd12a714971bb5ec2dc10dd9fe Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 12 Aug 2019 14:08:29 -0400 Subject: [PATCH 312/412] fix(test): firefox started truncating the y axis of translate() if 0 Weird regression to be sure --- specs/draggable.spec.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 5609529f..4267f2bc 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -56,7 +56,7 @@ describe('react-draggable', function () { assert(node.getAttribute('style').indexOf('touch-action: none') >= 0); } assert(node.getAttribute('style').indexOf('color: black') >= 0); - assert(node.getAttribute('style').indexOf(transformStyle + ': translate(0px, 0px)') >= 0); + assert(new RegExp(transformStyle + ': translate\\(0px(?:, 0px)?\\)').test(node.getAttribute('style'))); assert(node.getAttribute('class') === 'foo react-draggable'); }); @@ -286,7 +286,7 @@ describe('react-draggable', function () { const style = node.getAttribute('style'); assert(dragged === true); - assert(style.indexOf('transform: translate(100px, 0px);') >= 0); + assert(/transform: translate\(100px(?:, 0px)?\);/.test(style)); }); it('should honor "y" axis', function () { @@ -318,7 +318,7 @@ describe('react-draggable', function () { const style = node.getAttribute('style'); assert(dragged === true); - assert(style.indexOf('transform: translate(0px, 0px);') >= 0); + assert(/transform: translate\(0px(?:, 0px)?\);/.test(style)); }); it('should detect if an element is instanceof SVGElement and set state.isElementSVG to true', function() { From 0092138d4f04fef193b94803c3d173a74ebdca6d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 12 Aug 2019 14:09:04 -0400 Subject: [PATCH 313/412] release v3.3.1 --- CHANGELOG.md | 4 ++++ bower.json | 2 +- dist/react-draggable.js | 13 +++++-------- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 14 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e760927..91231020 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 3.3.1 (Aug 12, 2019) + +- Fix React 16.9 `componentWillMount` deprecation. + ### 3.3.0 (Apr 18, 2019) - Addition of `positionOffset` prop, which can be Numbers (px) or string percentages (like `"10%"`). See the README for more. diff --git a/bower.json b/bower.json index 208d32a0..898b91e9 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index 302d5ebf..df240626 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -1989,18 +1989,15 @@ // Can only determine if SVG after mounting isElementSVG: false }; + + if (props.position && !(props.onDrag || props.onStop)) { + // eslint-disable-next-line no-console + console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); + } return _this; } createClass(Draggable, [{ - key: 'componentWillMount', - value: function componentWillMount() { - if (this.props.position && !(this.props.onDrag || this.props.onStop)) { - // eslint-disable-next-line - console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); - } - } - }, { key: 'componentDidMount', value: function componentDidMount() { // Check to see if the element passed is an instanceof SVGElement diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 888eda2e..27b5d945 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","controlPos","positionOffset","translation","getTranslation","browserPrefix","createSVGTransform","unitSuffix","defaultX","defaultY","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","controlPos","positionOffset","translation","getTranslation","browserPrefix","createSVGTransform","unitSuffix","defaultX","defaultY","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;CAWA,SAAS,iBAAiB,CAAC,GAAG,EAAE;GAC9B,OAAO,YAAY;KACjB,OAAO,GAAG,CAAC;IACZ,CAAC;EACH;;;;;;;CAOD,IAAI,aAAa,GAAG,SAAS,aAAa,GAAG,EAAE,CAAC;;CAEhD,aAAa,CAAC,WAAW,GAAG,iBAAiB,CAAC;CAC9C,aAAa,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;CAC1D,aAAa,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;CACxD,aAAa,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;CACxD,aAAa,CAAC,eAAe,GAAG,YAAY;GAC1C,OAAO,IAAI,CAAC;EACb,CAAC;CACF,aAAa,CAAC,mBAAmB,GAAG,UAAU,GAAG,EAAE;GACjD,OAAO,GAAG,CAAC;EACZ,CAAC;;CAEF,mBAAc,GAAG,aAAa;;CCnC9B;;;;;;;;;;;;;;;;;;;CAqBA,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;;AAExD,CAA2C;GACzC,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;KAC/C,IAAI,MAAM,KAAK,SAAS,EAAE;OACxB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;MACjE;IACF,CAAC;EACH;;CAED,SAAS,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;GACtD,cAAc,CAAC,MAAM,CAAC,CAAC;;GAEvB,IAAI,CAAC,SAAS,EAAE;KACd,IAAI,KAAK,CAAC;KACV,IAAI,MAAM,KAAK,SAAS,EAAE;OACxB,KAAK,GAAG,IAAI,KAAK,CAAC,oEAAoE,GAAG,6DAA6D,CAAC,CAAC;MACzJ,MAAM;OACL,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;OAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;OACjB,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY;SAClD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;OACJ,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC;MACpC;;KAED,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;KACtB,MAAM,KAAK,CAAC;IACb;EACF;;CAED,eAAc,GAAG,SAAS;;;;;;;;;CCjC1B,IAAI,OAAO,GAAGA,eAAa,CAAC;;AAE5B,CAA2C;GACzC,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;KAC/C,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;OACtG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;MAClC;;KAED,IAAI,QAAQ,GAAG,CAAC,CAAC;KACjB,IAAI,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY;OAC5D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;MACzB,CAAC,CAAC;KACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;OAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;MACxB;KACD,IAAI;;;;OAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;MAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;IACf,CAAC;;GAEF,OAAO,GAAG,SAAS,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE;KAC5C,IAAI,MAAM,KAAK,SAAS,EAAE;OACxB,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,kBAAkB,CAAC,CAAC;MACnG;;KAED,IAAI,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE;OACvD,OAAO;MACR;;KAED,IAAI,CAAC,SAAS,EAAE;OACd,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;SAC7G,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC;;OAED,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;MACtD;IACF,CAAC;EACH;;CAED,aAAc,GAAG,OAAO;;CC7DxB;;;;;;CAQA,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;CACzD,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;CACrD,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;;CAE7D,SAAS,QAAQ,CAAC,GAAG,EAAE;EACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;GACtC,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;GAC7E;;EAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;EACnB;;CAED,SAAS,eAAe,GAAG;EAC1B,IAAI;GACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IACnB,OAAO,KAAK,CAAC;IACb;;;;;GAKD,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;GAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;GAChB,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IACjD,OAAO,KAAK,CAAC;IACb;;;GAGD,IAAI,KAAK,GAAG,EAAE,CAAC;GACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAC5B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC;GACD,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;IAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC;GACH,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;IACrC,OAAO,KAAK,CAAC;IACb;;;GAGD,IAAI,KAAK,GAAG,EAAE,CAAC;GACf,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;IAC1D,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACvB,CAAC,CAAC;GACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;KAChD,sBAAsB,EAAE;IACzB,OAAO,KAAK,CAAC;IACb;;GAED,OAAO,IAAI,CAAC;GACZ,CAAC,OAAO,GAAG,EAAE;;GAEb,OAAO,KAAK,CAAC;GACb;EACD;;CAED,gBAAc,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;EAC9E,IAAI,IAAI,CAAC;EACT,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;EAC1B,IAAI,OAAO,CAAC;;EAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;GAC1C,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;GAE5B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;IACrB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;KACnC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;KACpB;IACD;;GAED,IAAI,qBAAqB,EAAE;IAC1B,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KACxC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;MAC5C,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;MAClC;KACD;IACD;GACD;;EAED,OAAO,EAAE,CAAC;EACV,CAAC;;CCzFF;;;;;;;CASA,IAAI,oBAAoB,GAAG,8CAA8C,CAAC;;CAE1E,0BAAc,GAAG,oBAAoB,CAAC;;CCFK;GACzC,IAAIC,WAAS,GAAGC,WAA6B,CAAC;GAC9C,IAAIC,SAAO,GAAGC,SAA2B,CAAC;GAC1C,IAAIC,sBAAoB,GAAGC,sBAAqC,CAAC;GACjE,IAAI,kBAAkB,GAAG,EAAE,CAAC;EAC7B;;;;;;;;;;;;;CAaD,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE;GAC5E,AAA2C;KACzC,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE;OAClC,IAAI,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;SAC1C,IAAI,KAAK,CAAC;;;;SAIV,IAAI;;;WAGFL,WAAS,CAAC,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE,mEAAmE,GAAG,8CAA8C,EAAE,aAAa,IAAI,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;WACvQ,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAEI,sBAAoB,CAAC,CAAC;UAC5G,CAAC,OAAO,EAAE,EAAE;WACX,KAAK,GAAG,EAAE,CAAC;UACZ;SACDF,SAAO,CAAC,CAAC,KAAK,IAAI,KAAK,YAAY,KAAK,EAAE,iEAAiE,GAAG,+DAA+D,GAAG,iEAAiE,GAAG,gEAAgE,GAAG,iCAAiC,EAAE,aAAa,IAAI,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC;SACha,IAAI,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,EAAE;;;WAGpE,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;;WAEzC,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC;;WAEvCA,SAAO,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;UAC7F;QACF;MACF;IACF;EACF;;CAED,oBAAc,GAAG,cAAc,CAAC;;CCzChC,2BAAc,GAAG,SAAS,cAAc,EAAE,mBAAmB,EAAE;;GAE7D,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC;GACtE,IAAI,oBAAoB,GAAG,YAAY,CAAC;;;;;;;;;;;;;;;;GAgBxC,SAAS,aAAa,CAAC,aAAa,EAAE;KACpC,IAAI,UAAU,GAAG,aAAa,KAAK,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;KAC7H,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;OACpC,OAAO,UAAU,CAAC;MACnB;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDD,IAAI,SAAS,GAAG,eAAe,CAAC;;;;GAIhC,IAAI,cAAc,GAAG;KACnB,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC;KAC1C,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC;KAC3C,IAAI,EAAE,0BAA0B,CAAC,UAAU,CAAC;KAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;KAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;KAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;KAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;;KAE5C,GAAG,EAAE,oBAAoB,EAAE;KAC3B,OAAO,EAAE,wBAAwB;KACjC,OAAO,EAAE,wBAAwB,EAAE;KACnC,UAAU,EAAE,yBAAyB;KACrC,IAAI,EAAE,iBAAiB,EAAE;KACzB,QAAQ,EAAE,yBAAyB;KACnC,KAAK,EAAE,qBAAqB;KAC5B,SAAS,EAAE,sBAAsB;KACjC,KAAK,EAAE,sBAAsB;KAC7B,KAAK,EAAE,4BAA4B;IACpC,CAAC;;;;;;;GAOF,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;;KAEhB,IAAI,CAAC,KAAK,CAAC,EAAE;;;OAGX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;MACnC,MAAM;;OAEL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAC3B;IACF;;;;;;;;;;GAUD,SAAS,aAAa,CAAC,OAAO,EAAE;KAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACjB;;GAED,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;;GAE1C,SAAS,0BAA0B,CAAC,QAAQ,EAAE;KAC5C,AAA2C;OACzC,IAAI,uBAAuB,GAAG,EAAE,CAAC;OACjC,IAAI,0BAA0B,GAAG,CAAC,CAAC;MACpC;KACD,SAAS,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;OAC7F,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC;OAC3C,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAC;;OAExC,IAAI,MAAM,KAAKE,sBAAoB,EAAE;SACnC,IAAI,mBAAmB,EAAE;;WAEvBJ,WAAS;aACP,KAAK;aACL,sFAAsF;aACtF,iDAAiD;aACjD,gDAAgD;YACjD,CAAC;UACH,MAAM,IAAI,aAAoB,KAAK,YAAY,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;;WAElF,IAAI,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;WAC9C;aACE,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;aAElC,0BAA0B,GAAG,CAAC;aAC9B;aACAE,SAAO;eACL,KAAK;eACL,wDAAwD;eACxD,yDAAyD;eACzD,yDAAyD;eACzD,gEAAgE;eAChE,+DAA+D,GAAG,cAAc;eAChF,YAAY;eACZ,aAAa;cACd,CAAC;aACF,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;aACzC,0BAA0B,EAAE,CAAC;YAC9B;UACF;QACF;OACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;SAC3B,IAAI,UAAU,EAAE;WACd,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;aAC5B,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,0BAA0B,IAAI,MAAM,GAAG,aAAa,GAAG,6BAA6B,CAAC,CAAC,CAAC;YAC3J;WACD,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,6BAA6B,IAAI,GAAG,GAAG,aAAa,GAAG,kCAAkC,CAAC,CAAC,CAAC;UAChK;SACD,OAAO,IAAI,CAAC;QACb,MAAM;SACL,OAAO,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzE;MACF;;KAED,IAAI,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACnD,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;KAEzD,OAAO,gBAAgB,CAAC;IACzB;;GAED,SAAS,0BAA0B,CAAC,YAAY,EAAE;KAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;OAChF,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;OACtC,IAAI,QAAQ,KAAK,YAAY,EAAE;;;;SAI7B,IAAI,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;;SAE5C,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/L;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,oBAAoB,GAAG;KAC9B,OAAO,0BAA0B,CAACH,eAAa,CAAC,eAAe,CAAC,CAAC;IAClE;;GAED,SAAS,wBAAwB,CAAC,WAAW,EAAE;KAC7C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;SACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,iDAAiD,CAAC,CAAC;QAChJ;OACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;SAC7B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;SACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;QACvK;OACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACzC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAEK,sBAAoB,CAAC,CAAC;SACnH,IAAI,KAAK,YAAY,KAAK,EAAE;WAC1B,OAAO,KAAK,CAAC;UACd;QACF;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,wBAAwB,GAAG;KAClC,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;SAC9B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;SACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,oCAAoC,CAAC,CAAC,CAAC;QACpL;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,yBAAyB,CAAC,aAAa,EAAE;KAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,aAAa,CAAC,EAAE;SAC/C,IAAI,iBAAiB,GAAG,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC;SACxD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;SACpD,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;QACpN;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,qBAAqB,CAAC,cAAc,EAAE;KAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;OAClC,AAAwCF,SAAO,CAAC,KAAK,EAAE,oEAAoE,CAAC,AAAS,CAAC;OACtI,OAAOH,eAAa,CAAC,eAAe,CAAC;MACtC;;KAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;WACpC,OAAO,IAAI,CAAC;UACb;QACF;;OAED,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;OAClD,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,qBAAqB,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;MAC5L;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,yBAAyB,CAAC,WAAW,EAAE;KAC9C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;SACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,kDAAkD,CAAC,CAAC;QACjJ;OACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;OACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAAC,CAAC;QACxK;OACD,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;SACzB,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;WACjC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEK,sBAAoB,CAAC,CAAC;WACjH,IAAI,KAAK,YAAY,KAAK,EAAE;aAC1B,OAAO,KAAK,CAAC;YACd;UACF;QACF;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,sBAAsB,CAAC,mBAAmB,EAAE;KACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;OACvC,AAAwCF,SAAO,CAAC,KAAK,EAAE,wEAAwE,CAAC,AAAS,CAAC;OAC1I,OAAOH,eAAa,CAAC,eAAe,CAAC;MACtC;;KAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;OACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;OACrC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;SACjCG,SAAO;WACL,KAAK;WACL,oFAAoF;WACpF,0BAA0B;WAC1B,wBAAwB,CAAC,OAAO,CAAC;WACjC,CAAC;UACF,CAAC;SACF,OAAOH,eAAa,CAAC,eAAe,CAAC;QACtC;MACF;;KAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;SACrC,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAEK,sBAAoB,CAAC,IAAI,IAAI,EAAE;WACjG,OAAO,IAAI,CAAC;UACb;QACF;;OAED,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;MACzH;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,iBAAiB,GAAG;KAC3B,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;SAC5B,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,0BAA0B,CAAC,CAAC,CAAC;QAC/I;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,sBAAsB,CAAC,UAAU,EAAE;KAC1C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;OACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;QACvK;OACD,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;SAC1B,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,IAAI,CAAC,OAAO,EAAE;WACZ,SAAS;UACV;SACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEA,sBAAoB,CAAC,CAAC;SAC7G,IAAI,KAAK,EAAE;WACT,OAAO,KAAK,CAAC;UACd;QACF;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,4BAA4B,CAAC,UAAU,EAAE;KAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;OACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;QACvK;;;OAGD,IAAI,OAAO,GAAGE,YAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;OACtD,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;SACvB,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,IAAI,CAAC,OAAO,EAAE;WACZ,OAAO,IAAI,aAAa;aACtB,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI;aACxG,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;aAC9D,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;YACxE,CAAC;UACH;SACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEF,sBAAoB,CAAC,CAAC;SAC7G,IAAI,KAAK,EAAE;WACT,OAAO,KAAK,CAAC;UACd;QACF;OACD,OAAO,IAAI,CAAC;MACb;;KAED,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,MAAM,CAAC,SAAS,EAAE;KACzB,QAAQ,OAAO,SAAS;OACtB,KAAK,QAAQ,CAAC;OACd,KAAK,QAAQ,CAAC;OACd,KAAK,WAAW;SACd,OAAO,IAAI,CAAC;OACd,KAAK,SAAS;SACZ,OAAO,CAAC,SAAS,CAAC;OACpB,KAAK,QAAQ;SACX,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;WAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;UAChC;SACD,IAAI,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;WACnD,OAAO,IAAI,CAAC;UACb;;SAED,IAAI,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;SAC1C,IAAI,UAAU,EAAE;WACd,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;WAC1C,IAAI,IAAI,CAAC;WACT,IAAI,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;aACpC,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;eACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;iBACvB,OAAO,KAAK,CAAC;gBACd;cACF;YACF,MAAM;;aAEL,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;eACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;eACvB,IAAI,KAAK,EAAE;iBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;mBACrB,OAAO,KAAK,CAAC;kBACd;gBACF;cACF;YACF;UACF,MAAM;WACL,OAAO,KAAK,CAAC;UACd;;SAED,OAAO,IAAI,CAAC;OACd;SACE,OAAO,KAAK,CAAC;MAChB;IACF;;GAED,SAAS,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;;KAErC,IAAI,QAAQ,KAAK,QAAQ,EAAE;OACzB,OAAO,IAAI,CAAC;MACb;;;KAGD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;OAC3C,OAAO,IAAI,CAAC;MACb;;;KAGD,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,SAAS,YAAY,MAAM,EAAE;OAC/D,OAAO,IAAI,CAAC;MACb;;KAED,OAAO,KAAK,CAAC;IACd;;;GAGD,SAAS,WAAW,CAAC,SAAS,EAAE;KAC9B,IAAI,QAAQ,GAAG,OAAO,SAAS,CAAC;KAChC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;OAC5B,OAAO,OAAO,CAAC;MAChB;KACD,IAAI,SAAS,YAAY,MAAM,EAAE;;;;OAI/B,OAAO,QAAQ,CAAC;MACjB;KACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;OACjC,OAAO,QAAQ,CAAC;MACjB;KACD,OAAO,QAAQ,CAAC;IACjB;;;;GAID,SAAS,cAAc,CAAC,SAAS,EAAE;KACjC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,IAAI,EAAE;OAC1D,OAAO,EAAE,GAAG,SAAS,CAAC;MACvB;KACD,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;KACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;OACzB,IAAI,SAAS,YAAY,IAAI,EAAE;SAC7B,OAAO,MAAM,CAAC;QACf,MAAM,IAAI,SAAS,YAAY,MAAM,EAAE;SACtC,OAAO,QAAQ,CAAC;QACjB;MACF;KACD,OAAO,QAAQ,CAAC;IACjB;;;;GAID,SAAS,wBAAwB,CAAC,KAAK,EAAE;KACvC,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;KACjC,QAAQ,IAAI;OACV,KAAK,OAAO,CAAC;OACb,KAAK,QAAQ;SACX,OAAO,KAAK,GAAG,IAAI,CAAC;OACtB,KAAK,SAAS,CAAC;OACf,KAAK,MAAM,CAAC;OACZ,KAAK,QAAQ;SACX,OAAO,IAAI,GAAG,IAAI,CAAC;OACrB;SACE,OAAO,IAAI,CAAC;MACf;IACF;;;GAGD,SAAS,YAAY,CAAC,SAAS,EAAE;KAC/B,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;OACzD,OAAO,SAAS,CAAC;MAClB;KACD,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;IACnC;;GAED,cAAc,CAAC,cAAc,GAAGG,gBAAc,CAAC;GAC/C,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC;;GAE1C,OAAO,cAAc,CAAC;EACvB,CAAC;;;CC7hBF;;;;;;;AAOA,CAA2C;GACzC,IAAI,kBAAkB,GAAG,CAAC,OAAO,MAAM,KAAK,UAAU;KACpD,MAAM,CAAC,GAAG;KACV,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;KAC3B,MAAM,CAAC;;GAET,IAAI,cAAc,GAAG,SAAS,MAAM,EAAE;KACpC,OAAO,OAAO,MAAM,KAAK,QAAQ;OAC/B,MAAM,KAAK,IAAI;OACf,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAC;IAC1C,CAAC;;;;GAIF,IAAI,mBAAmB,GAAG,IAAI,CAAC;GAC/B,cAAc,GAAGN,uBAAoC,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;EAC5F,AAIA;;;;CC3BD;;;;;;;CAOA,CAAC,YAAY;;EAGZ,IAAI,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC;;EAE/B,SAAS,UAAU,IAAI;GACtB,IAAI,OAAO,GAAG,EAAE,CAAC;;GAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,EAAE,SAAS;;IAEnB,IAAI,OAAO,GAAG,OAAO,GAAG,CAAC;;IAEzB,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,EAAE;KACjD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;KAC9B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAC1C,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;KAChC,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;MACpB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;OACtC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;OAClB;MACD;KACD;IACD;;GAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;GACzB;;EAED,IAAI,QAAa,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;GACpD,cAAc,GAAG,UAAU,CAAC;GAC5B,MAAM,IAAI,OAAOO,SAAM,KAAK,UAAU,IAAI,OAAOA,SAAM,CAAC,GAAG,KAAK,QAAQ,IAAIA,SAAM,CAAC,GAAG,EAAE;;GAExFA,SAAM,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY;IACpC,OAAO,UAAU,CAAC;IAClB,CAAC,CAAC;GACH,MAAM;GACN,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;GAC/B;EACD,EAAE,EAAE;;;CC9CL;AACA,CAAO,SAASC,WAAT,CAAqBC,KAArB,+BAAoDC,QAApD,2BAA6E;CAClF,OAAK,IAAIC,IAAI,CAAR,EAAWC,SAASH,MAAMG,MAA/B,EAAuCD,IAAIC,MAA3C,EAAmDD,GAAnD,EAAwD;CACtD,QAAID,SAASG,KAAT,CAAeH,QAAf,EAAyB,CAACD,MAAME,CAAN,CAAD,EAAWA,CAAX,EAAcF,KAAd,CAAzB,CAAJ,EAAoD,OAAOA,MAAME,CAAN,CAAP;CACrD;CACF;;AAED,CAAO,SAASG,UAAT,CAAoBC,IAApB,0BAAwC;CAC7C,SAAO,OAAOA,IAAP,KAAgB,UAAhB,IAA8BC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,IAA/B,MAAyC,mBAA9E;CACD;;AAED,CAAO,SAASK,KAAT,CAAeC,GAAf,0BAAkC;CACvC,SAAO,OAAOA,GAAP,KAAe,QAAf,IAA2B,CAACC,MAAMD,GAAN,CAAnC;CACD;;AAED,CAAO,SAASE,GAAT,CAAaC,CAAb,4BAAgC;CACrC,SAAOC,SAASD,CAAT,EAAY,EAAZ,CAAP;CACD;;AAED,CAAO,SAASE,SAAT,CAAmBC,KAAnB,eAAkCC,QAAlC,eAAoDC,aAApD,eAA2E;CAChF,MAAIF,MAAMC,QAAN,CAAJ,EAAqB;CACnB,WAAO,IAAIE,KAAJ,mBAA0BF,QAA1B,mBAAgDC,aAAhD,8CAAP;CACD;CACF;;CCvBD,IAAME,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACA,CAAO,SAASC,SAAT,gBAAqD;CAAA,MAAlCC,IAAkC,oFAArB,WAAqB;;CAC1D;CACA;CACA;CACA,MAAI,OAAOC,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOC,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;CAE7E,MAAMC,QAAQF,OAAOC,QAAP,CAAgBE,eAAhB,CAAgCD,KAA9C;;CAEA,MAAIH,QAAQG,KAAZ,EAAmB,OAAO,EAAP;;CAEnB,OAAK,IAAIzB,IAAI,CAAb,EAAgBA,IAAIoB,SAASnB,MAA7B,EAAqCD,GAArC,EAA0C;CACxC,QAAI2B,mBAAmBL,IAAnB,EAAyBF,SAASpB,CAAT,CAAzB,KAAyCyB,KAA7C,EAAoD,OAAOL,SAASpB,CAAT,CAAP;CACrD;;CAED,SAAO,EAAP;CACD;;AAED,CAAO,SAAS2B,kBAAT,CAA4BL,IAA5B,eAA0CM,MAA1C,4BAAkE;CACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBP,IAAjB,CAArB,GAAgDA,IAAvD;CACD;;CAMD,SAASO,gBAAT,CAA0BC,GAA1B,4BAA+C;CAC7C,MAAIC,MAAM,EAAV;CACA,MAAIC,mBAAmB,IAAvB;CACA,OAAK,IAAIhC,IAAI,CAAb,EAAgBA,IAAI8B,IAAI7B,MAAxB,EAAgCD,GAAhC,EAAqC;CACnC,QAAIgC,gBAAJ,EAAsB;CACpBD,aAAOD,IAAI9B,CAAJ,EAAOiC,WAAP,EAAP;CACAD,yBAAmB,KAAnB;CACD,KAHD,MAGO,IAAIF,IAAI9B,CAAJ,MAAW,GAAf,EAAoB;CACzBgC,yBAAmB,IAAnB;CACD,KAFM,MAEA;CACLD,aAAOD,IAAI9B,CAAJ,CAAP;CACD;CACF;CACD,SAAO+B,GAAP;CACD;;CAED;CACA;CACA;AACA,qBAAeV,WAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CCxCA,IAAIa,sBAAsB,EAA1B;AACA,CAAO,SAASC,eAAT,CAAyBC,EAAzB,aAAmCC,QAAnC,6BAA8D;CACnE,MAAI,CAACH,mBAAL,EAA0B;CACxBA,0BAAsBrC,YAAY,CAChC,SADgC,EAEhC,uBAFgC,EAGhC,oBAHgC,EAIhC,mBAJgC,EAKhC,kBALgC,CAAZ,EAMnB,UAASyC,MAAT,EAAgB;CACjB;CACA,aAAOnC,WAAWiC,GAAGE,MAAH,CAAX,CAAP;CACD,KATqB,CAAtB;CAUD;;CAED;CACA;CACA,MAAI,CAACnC,WAAWiC,GAAGF,mBAAH,CAAX,CAAL,EAA0C,OAAO,KAAP;;CAE1C;CACA,SAAOE,GAAGF,mBAAH,EAAwBG,QAAxB,CAAP;CACD;;CAED;AACA,CAAO,SAASE,2BAAT,CAAqCH,EAArC,aAA+CC,QAA/C,eAAiEG,QAAjE,2BAA0F;CAC/F,MAAIC,OAAOL,EAAX;CACA,KAAG;CACD,QAAID,gBAAgBM,IAAhB,EAAsBJ,QAAtB,CAAJ,EAAqC,OAAO,IAAP;CACrC,QAAII,SAASD,QAAb,EAAuB,OAAO,KAAP;CACvBC,WAAOA,KAAKC,UAAZ;CACD,GAJD,QAISD,IAJT;;CAMA,SAAO,KAAP;CACD;;AAED,CAAO,SAASE,QAAT,CAAkBP,EAAlB,cAA6BQ,KAA7B,eAA4CC,OAA5C,4BAAqE;CAC1E,MAAI,CAACT,EAAL,EAAS;CAAE;CAAS;CACpB,MAAIA,GAAGU,WAAP,EAAoB;CAClBV,OAAGU,WAAH,CAAe,OAAOF,KAAtB,EAA6BC,OAA7B;CACD,GAFD,MAEO,IAAIT,GAAGW,gBAAP,EAAyB;CAC9BX,OAAGW,gBAAH,CAAoBH,KAApB,EAA2BC,OAA3B,EAAoC,IAApC;CACD,GAFM,MAEA;CACL;CACAT,OAAG,OAAOQ,KAAV,IAAmBC,OAAnB;CACD;CACF;;AAED,CAAO,SAASG,WAAT,CAAqBZ,EAArB,cAAgCQ,KAAhC,eAA+CC,OAA/C,4BAAwE;CAC7E,MAAI,CAACT,EAAL,EAAS;CAAE;CAAS;CACpB,MAAIA,GAAGa,WAAP,EAAoB;CAClBb,OAAGa,WAAH,CAAe,OAAOL,KAAtB,EAA6BC,OAA7B;CACD,GAFD,MAEO,IAAIT,GAAGc,mBAAP,EAA4B;CACjCd,OAAGc,mBAAH,CAAuBN,KAAvB,EAA8BC,OAA9B,EAAuC,IAAvC;CACD,GAFM,MAEA;CACL;CACAT,OAAG,OAAOQ,KAAV,IAAmB,IAAnB;CACD;CACF;;AAED,CAAO,SAASO,WAAT,CAAqBV,IAArB,iCAAgD;CACrD;CACA;CACA,MAAIW,SAASX,KAAKY,YAAlB;CACA,MAAMC,gBAAgBb,KAAKc,aAAL,CAAmBC,WAAnB,CAA+BC,gBAA/B,CAAgDhB,IAAhD,CAAtB;CACAW,YAAUxC,IAAI0C,cAAcI,cAAlB,CAAV;CACAN,YAAUxC,IAAI0C,cAAcK,iBAAlB,CAAV;CACA,SAAOP,MAAP;CACD;;AAED,CAAO,SAASQ,UAAT,CAAoBnB,IAApB,iCAA+C;CACpD;CACA;CACA,MAAIoB,QAAQpB,KAAKqB,WAAjB;CACA,MAAMR,gBAAgBb,KAAKc,aAAL,CAAmBC,WAAnB,CAA+BC,gBAA/B,CAAgDhB,IAAhD,CAAtB;CACAoB,WAASjD,IAAI0C,cAAcS,eAAlB,CAAT;CACAF,WAASjD,IAAI0C,cAAcU,gBAAlB,CAAT;CACA,SAAOH,KAAP;CACD;AACD,CAAO,SAASI,WAAT,CAAqBxB,IAArB,iCAAgD;CACrD,MAAIW,SAASX,KAAKY,YAAlB;CACA,MAAMC,gBAAgBb,KAAKc,aAAL,CAAmBC,WAAnB,CAA+BC,gBAA/B,CAAgDhB,IAAhD,CAAtB;CACAW,YAAUxC,IAAI0C,cAAcY,UAAlB,CAAV;CACAd,YAAUxC,IAAI0C,cAAca,aAAlB,CAAV;CACA,SAAOf,MAAP;CACD;;AAED,CAAO,SAASgB,UAAT,CAAoB3B,IAApB,iCAA+C;CACpD,MAAIoB,QAAQpB,KAAKqB,WAAjB;CACA,MAAMR,gBAAgBb,KAAKc,aAAL,CAAmBC,WAAnB,CAA+BC,gBAA/B,CAAgDhB,IAAhD,CAAtB;CACAoB,WAASjD,IAAI0C,cAAce,WAAlB,CAAT;CACAR,WAASjD,IAAI0C,cAAcgB,YAAlB,CAAT;CACA,SAAOT,KAAP;CACD;;CAED;AACA,CAAO,SAASU,kBAAT,CAA4BC,GAA5B,2CAAqEC,YAArE,0CAAiH;CACtH,MAAMC,SAASD,iBAAiBA,aAAalB,aAAb,CAA2BoB,IAA3D;CACA,MAAMC,mBAAmBF,SAAS,EAACG,MAAM,CAAP,EAAUC,KAAK,CAAf,EAAT,GAA6BL,aAAaM,qBAAb,EAAtD;;CAEA,MAAMC,IAAIR,IAAIS,OAAJ,GAAcR,aAAaS,UAA3B,GAAwCN,iBAAiBC,IAAnE;CACA,MAAMM,IAAIX,IAAIY,OAAJ,GAAcX,aAAaY,SAA3B,GAAuCT,iBAAiBE,GAAlE;;CAEA,SAAO,EAACE,IAAD,EAAIG,IAAJ,EAAP;CACD;;AAED,CAAO,SAASG,kBAAT,CAA4BC,UAA5B,wBAAyDC,cAAzD,mDAAgH;CACrH,MAAMC,cAAcC,eAAeH,UAAf,EAA2BC,cAA3B,EAA2C,IAA3C,CAApB;CACA,4BAAS7D,mBAAmB,WAAnB,EAAgCgE,aAAhC,CAAT,EAA0DF,WAA1D;CACD;;AAED,CAAO,SAASG,kBAAT,CAA4BL,UAA5B,wBAAyDC,cAAzD,mDAAgH;CACrH,MAAMC,cAAcC,eAAeH,UAAf,EAA2BC,cAA3B,EAA2C,EAA3C,CAApB;CACA,SAAOC,WAAP;CACD;AACD,CAAO,SAASC,cAAT,QAAiDF,cAAjD,sCAAgGK,UAAhG,4BAA4H;CAAA,MAAnGb,CAAmG,SAAnGA,CAAmG;CAAA,MAAhGG,CAAgG,SAAhGA,CAAgG;;CACjI,MAAIM,6BAA2BT,CAA3B,GAA+Ba,UAA/B,SAA6CV,CAA7C,GAAiDU,UAAjD,MAAJ;CACA,MAAIL,cAAJ,EAAoB;CAClB,QAAMM,iBAAe,OAAON,eAAeR,CAAtB,KAA4B,QAA7B,GAAyCQ,eAAeR,CAAxD,GAA4DQ,eAAeR,CAAf,GAAmBa,UAA7F,CAAN;CACA,QAAME,iBAAe,OAAOP,eAAeL,CAAtB,KAA4B,QAA7B,GAAyCK,eAAeL,CAAxD,GAA4DK,eAAeL,CAAf,GAAmBU,UAA7F,CAAN;CACAJ,kBAAc,eAAaK,QAAb,UAA0BC,QAA1B,SAAwCN,WAAtD;CACD;CACD,SAAOA,WAAP;CACD;;AAED,CAAO,SAASO,QAAT,CAAkBC,CAAlB,wBAAsCC,UAAtC,yDAA+F;CACpG,SAAQD,EAAEE,aAAF,IAAmBtG,YAAYoG,EAAEE,aAAd,EAA6B;CAAA,WAAKD,eAAeE,EAAEF,UAAtB;CAAA,GAA7B,CAApB,IACCD,EAAEI,cAAF,IAAoBxG,YAAYoG,EAAEI,cAAd,EAA8B;CAAA,WAAKH,eAAeE,EAAEF,UAAtB;CAAA,GAA9B,CAD5B;CAED;;AAED,CAAO,SAASI,kBAAT,CAA4BL,CAA5B,sCAAyD;CAC9D,MAAIA,EAAEE,aAAF,IAAmBF,EAAEE,aAAF,CAAgB,CAAhB,CAAvB,EAA2C,OAAOF,EAAEE,aAAF,CAAgB,CAAhB,EAAmBD,UAA1B;CAC3C,MAAID,EAAEI,cAAF,IAAoBJ,EAAEI,cAAF,CAAiB,CAAjB,CAAxB,EAA6C,OAAOJ,EAAEI,cAAF,CAAiB,CAAjB,EAAoBH,UAA3B;CAC9C;;CAED;CACA;CACA;;CAEA;AACA,CAAO,SAASK,mBAAT,CAA6BC,GAA7B,kBAA6C;CAClD,MAAI,CAACA,GAAL,EAAU;CACV,MAAIC,UAAUD,IAAIE,cAAJ,CAAmB,0BAAnB,CAAd;CACA,MAAI,CAACD,OAAL,EAAc;CACZA,cAAUD,IAAIG,aAAJ,CAAkB,OAAlB,CAAV;CACAF,YAAQG,IAAR,GAAe,UAAf;CACAH,YAAQI,EAAR,GAAa,0BAAb;CACAJ,YAAQK,SAAR,GAAoB,uFAApB;CACAL,YAAQK,SAAR,IAAqB,kFAArB;CACAN,QAAIO,oBAAJ,CAAyB,MAAzB,EAAiC,CAAjC,EAAoCC,WAApC,CAAgDP,OAAhD;CACD;CACD,MAAID,IAAI7B,IAAR,EAAcsC,aAAaT,IAAI7B,IAAjB,EAAuB,uCAAvB;CACf;;AAED,CAAO,SAASuC,sBAAT,CAAgCV,GAAhC,kBAAgD;CACrD,MAAI;CACF,QAAIA,OAAOA,IAAI7B,IAAf,EAAqBwC,gBAAgBX,IAAI7B,IAApB,EAA0B,uCAA1B;CACrB;CACA,QAAI6B,IAAIY,SAAR,EAAmB;CACjB;CACAZ,UAAIY,SAAJ,CAAcC,KAAd;CACD,KAHD,MAGO;CACL9F,aAAO+F,YAAP,GAAsBC,eAAtB,GADK;CAEN;CACF,GATD,CASE,OAAOtB,CAAP,EAAU;CACV;CACD;CACF;;AAED,CAAO,SAASuB,UAAT,gBAAqD;CAAA,MAAjCC,UAAiC,oFAAZ,EAAY;;CAC1D;CACA;CACA;CACEC,iBAAa;CADf,KAEKD,UAFL;CAID;;AAED,CAAO,SAASR,YAAT,CAAsB7E,EAAtB,oBAAuCuF,SAAvC,eAA0D;CAC/D,MAAIvF,GAAGwF,SAAP,EAAkB;CAChBxF,OAAGwF,SAAH,CAAaC,GAAb,CAAiBF,SAAjB;CACD,GAFD,MAEO;CACL,QAAI,CAACvF,GAAGuF,SAAH,CAAaG,KAAb,CAAmB,IAAIC,MAAJ,eAAuBJ,SAAvB,aAAnB,CAAL,EAAqE;CACnEvF,SAAGuF,SAAH,UAAoBA,SAApB;CACD;CACF;CACF;;AAED,CAAO,SAASR,eAAT,CAAyB/E,EAAzB,oBAA0CuF,SAA1C,eAA6D;CAClE,MAAIvF,GAAGwF,SAAP,EAAkB;CAChBxF,OAAGwF,SAAH,CAAaI,MAAb,CAAoBL,SAApB;CACD,GAFD,MAEO;CACLvF,OAAGuF,SAAH,GAAevF,GAAGuF,SAAH,CAAaM,OAAb,CAAqB,IAAIF,MAAJ,eAAuBJ,SAAvB,cAA2C,GAA3C,CAArB,EAAsE,EAAtE,CAAf;CACD;CACF;;;;;;;AC9LD,CAAO,SAASO,gBAAT,CAA0BC,SAA1B,kBAAgDnD,CAAhD,eAA2DG,CAA3D,sCAAwF;CAC7F;CACA,MAAI,CAACgD,UAAUnH,KAAV,CAAgBoH,MAArB,EAA6B,OAAO,CAACpD,CAAD,EAAIG,CAAJ,CAAP;;CAE7B;CAJ6F,MAKxFiD,MALwF,GAK9ED,UAAUnH,KALoE,CAKxFoH,MALwF;;CAM7FA,WAAS,OAAOA,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCC,YAAYD,MAAZ,CAA/C;CACA,MAAM3F,OAAO6F,YAAYH,SAAZ,CAAb;;CAEA,MAAI,OAAOC,MAAP,KAAkB,QAAtB,EAAgC;CAAA,QACvB7E,aADuB,GACNd,IADM,CACvBc,aADuB;;CAE9B,QAAMgF,cAAchF,cAAcC,WAAlC;CACA,QAAIgF,kBAAJ;CACA,QAAIJ,WAAW,QAAf,EAAyB;CACvBI,kBAAY/F,KAAKC,UAAjB;CACD,KAFD,MAEO;CACL8F,kBAAYjF,cAAckF,aAAd,CAA4BL,MAA5B,CAAZ;CACD;CACD,QAAI,EAAEI,qBAAqBD,YAAYG,WAAnC,CAAJ,EAAqD;CACnD,YAAM,IAAIvH,KAAJ,CAAU,sBAAsBiH,MAAtB,GAA+B,8BAAzC,CAAN;CACD;CACD,QAAMO,YAAYJ,YAAY9E,gBAAZ,CAA6BhB,IAA7B,CAAlB;CACA,QAAMmG,iBAAiBL,YAAY9E,gBAAZ,CAA6B+E,SAA7B,CAAvB;CACA;CACAJ,aAAS;CACPvD,YAAM,CAACpC,KAAKoG,UAAN,GAAmBjI,IAAIgI,eAAevE,WAAnB,CAAnB,GAAqDzD,IAAI+H,UAAUG,UAAd,CADpD;CAEPhE,WAAK,CAACrC,KAAKsG,SAAN,GAAkBnI,IAAIgI,eAAe1E,UAAnB,CAAlB,GAAmDtD,IAAI+H,UAAUK,SAAd,CAFjD;CAGPC,aAAO7E,WAAWoE,SAAX,IAAwB5E,WAAWnB,IAAX,CAAxB,GAA2CA,KAAKoG,UAAhD,GACLjI,IAAIgI,eAAetE,YAAnB,CADK,GAC8B1D,IAAI+H,UAAUO,WAAd,CAJ9B;CAKPC,cAAQlF,YAAYuE,SAAZ,IAAyBrF,YAAYV,IAAZ,CAAzB,GAA6CA,KAAKsG,SAAlD,GACNnI,IAAIgI,eAAezE,aAAnB,CADM,GAC8BvD,IAAI+H,UAAUS,YAAd;CAN/B,KAAT;CAQD;;CAED;CACA,MAAI3I,MAAM2H,OAAOa,KAAb,CAAJ,EAAyBjE,IAAIqE,KAAKC,GAAL,CAAStE,CAAT,EAAYoD,OAAOa,KAAnB,CAAJ;CACzB,MAAIxI,MAAM2H,OAAOe,MAAb,CAAJ,EAA0BhE,IAAIkE,KAAKC,GAAL,CAASnE,CAAT,EAAYiD,OAAOe,MAAnB,CAAJ;;CAE1B;CACA,MAAI1I,MAAM2H,OAAOvD,IAAb,CAAJ,EAAwBG,IAAIqE,KAAKE,GAAL,CAASvE,CAAT,EAAYoD,OAAOvD,IAAnB,CAAJ;CACxB,MAAIpE,MAAM2H,OAAOtD,GAAb,CAAJ,EAAuBK,IAAIkE,KAAKE,GAAL,CAASpE,CAAT,EAAYiD,OAAOtD,GAAnB,CAAJ;;CAEvB,SAAO,CAACE,CAAD,EAAIG,CAAJ,CAAP;CACD;;AAED,CAAO,SAASqE,UAAT,CAAoBC,IAApB,yBAA4CC,QAA5C,eAA8DC,QAA9D,sCAAkG;CACvG,MAAM3E,IAAIqE,KAAKO,KAAL,CAAWF,WAAWD,KAAK,CAAL,CAAtB,IAAiCA,KAAK,CAAL,CAA3C;CACA,MAAMtE,IAAIkE,KAAKO,KAAL,CAAWD,WAAWF,KAAK,CAAL,CAAtB,IAAiCA,KAAK,CAAL,CAA3C;CACA,SAAO,CAACzE,CAAD,EAAIG,CAAJ,CAAP;CACD;;AAED,CAAO,SAAS0E,QAAT,CAAkB1B,SAAlB,gCAAiD;CACtD,SAAOA,UAAUnH,KAAV,CAAgB8I,IAAhB,KAAyB,MAAzB,IAAmC3B,UAAUnH,KAAV,CAAgB8I,IAAhB,KAAyB,GAAnE;CACD;;AAED,CAAO,SAASC,QAAT,CAAkB5B,SAAlB,gCAAiD;CACtD,SAAOA,UAAUnH,KAAV,CAAgB8I,IAAhB,KAAyB,MAAzB,IAAmC3B,UAAUnH,KAAV,CAAgB8I,IAAhB,KAAyB,GAAnE;CACD;;CAED;AACA,CAAO,SAASE,kBAAT,CAA4B/D,CAA5B,wBAAgDgE,eAAhD,gBAA0EC,aAA1E,6CAA0H;CAC/H,MAAMC,WAAW,OAAOF,eAAP,KAA2B,QAA3B,GAAsCjE,SAASC,CAAT,EAAYgE,eAAZ,CAAtC,GAAqE,IAAtF;CACA,MAAI,OAAOA,eAAP,KAA2B,QAA3B,IAAuC,CAACE,QAA5C,EAAsD,OAAO,IAAP,CAFyE;CAG/H,MAAM1H,OAAO6F,YAAY4B,aAAZ,CAAb;CACA;CACA,MAAMzF,eAAeyF,cAAclJ,KAAd,CAAoByD,YAApB,IAAoChC,KAAKgC,YAAzC,IAAyDhC,KAAKc,aAAL,CAAmBoB,IAAjG;CACA,SAAOJ,mBAAmB4F,YAAYlE,CAA/B,EAAkCxB,YAAlC,CAAP;CACD;;CAED;AACA,CAAO,SAAS2F,cAAT,CAAwBjC,SAAxB,sBAAkDnD,CAAlD,eAA6DG,CAA7D,mCAAuF;CAC5F,MAAMkF,QAAQlC,UAAUkC,KAAxB;CACA,MAAMC,UAAU,CAAC7J,MAAM4J,MAAME,KAAZ,CAAjB;CACA,MAAM9H,OAAO6F,YAAYH,SAAZ,CAAb;;CAEA,MAAImC,OAAJ,EAAa;CACX;CACA,WAAO;CACL7H,gBADK;CAEL+H,cAAQ,CAFH,EAEMC,QAAQ,CAFd;CAGLF,aAAOvF,CAHF,EAGK0F,OAAOvF,CAHZ;CAILH,UAJK,EAIFG;CAJE,KAAP;CAMD,GARD,MAQO;CACL;CACA,WAAO;CACL1C,gBADK;CAEL+H,cAAQxF,IAAIqF,MAAME,KAFb,EAEoBE,QAAQtF,IAAIkF,MAAMK,KAFtC;CAGLH,aAAOF,MAAME,KAHR,EAGeG,OAAOL,MAAMK,KAH5B;CAIL1F,UAJK,EAIFG;CAJE,KAAP;CAMD;CACF;;CAED;AACA,CAAO,SAASwF,mBAAT,CAA6BxC,SAA7B,kBAAmDyC,QAAnD,0CAA2F;CAChG,MAAMC,QAAQ1C,UAAUnH,KAAV,CAAgB6J,KAA9B;CACA,SAAO;CACLpI,UAAMmI,SAASnI,IADV;CAELuC,OAAGmD,UAAUkC,KAAV,CAAgBrF,CAAhB,GAAqB4F,SAASJ,MAAT,GAAkBK,KAFrC;CAGL1F,OAAGgD,UAAUkC,KAAV,CAAgBlF,CAAhB,GAAqByF,SAASH,MAAT,GAAkBI,KAHrC;CAILL,YAASI,SAASJ,MAAT,GAAkBK,KAJtB;CAKLJ,YAASG,SAASH,MAAT,GAAkBI,KALtB;CAMLN,WAAOpC,UAAUkC,KAAV,CAAgBrF,CANlB;CAOL0F,WAAOvC,UAAUkC,KAAV,CAAgBlF;CAPlB,GAAP;CASD;;CAED;CACA,SAASkD,WAAT,CAAqBD,MAArB,4BAA6C;CAC3C,SAAO;CACLvD,UAAMuD,OAAOvD,IADR;CAELC,SAAKsD,OAAOtD,GAFP;CAGLmE,WAAOb,OAAOa,KAHT;CAILE,YAAQf,OAAOe;CAJV,GAAP;CAMD;;CAED,SAASb,WAAT,CAAqBH,SAArB,oDAAwE;CACtE,MAAM1F,OAAOqI,SAASxC,WAAT,CAAqBH,SAArB,CAAb;CACA,MAAI,CAAC1F,IAAL,EAAW;CACT,UAAM,IAAItB,KAAJ,CAAU,0CAAV,CAAN;CACD;CACD;CACA,SAAOsB,IAAP;CACD;;CCrID;AACA,CAAe,SAASsI,GAAT,GAA2B;AAAA,CAEzC;;;;;CCSD;;CACA,IAAMC,YAAY;CAChBC,SAAO;CACLC,WAAO,YADF;CAELC,UAAM,WAFD;CAGLC,UAAM;CAHD,GADS;CAMhBC,SAAO;CACLH,WAAO,WADF;CAELC,UAAM,WAFD;CAGLC,UAAM;CAHD;CANS,CAAlB;;CAaA;CACA,IAAIE,eAAeN,UAAUK,KAA7B;;;;;;;;;;;;;;;;;;;;;;;;;CA2CA;CACA;CACA;CACA;CACA;CACA;;;;;;;;;;;;;;;;;KAEqBE;;;;;;;;;;;;;;oMA0InBlB,QAAQ;CACNmB,gBAAU,KADJ;CAEN;CACAjB,aAAOkB,GAHD,EAGMf,OAAOe,GAHb;CAINxB,uBAAiB;CAJX,aAqBRyB,kBAAiD,UAACzF,CAAD,EAAO;CACtD;CACA,YAAKjF,KAAL,CAAW2K,WAAX,CAAuB1F,CAAvB;;CAEA;CACA,UAAI,CAAC,MAAKjF,KAAL,CAAW4K,aAAZ,IAA6B,OAAO3F,EAAE4F,MAAT,KAAoB,QAAjD,IAA6D5F,EAAE4F,MAAF,KAAa,CAA9E,EAAiF,OAAO,KAAP;;CAEjF;CACA,UAAMC,WAAWhB,SAASxC,WAAT,OAAjB;CACA,UAAI,CAACwD,QAAD,IAAa,CAACA,SAASvI,aAAvB,IAAwC,CAACuI,SAASvI,aAAT,CAAuBoB,IAApE,EAA0E;CACxE,cAAM,IAAIxD,KAAJ,CAAU,2CAAV,CAAN;CACD;CAXqD,UAY/CoC,aAZ+C,GAY9BuI,QAZ8B,CAY/CvI,aAZ+C;;CActD;;CACA,UAAI,MAAKvC,KAAL,CAAW+K,QAAX,IACD,EAAE9F,EAAE+F,MAAF,YAAoBzI,cAAcC,WAAd,CAA0ByI,IAAhD,CADC,IAED,MAAKjL,KAAL,CAAWkL,MAAX,IAAqB,CAAC3J,4BAA4B0D,EAAE+F,MAA9B,EAAsC,MAAKhL,KAAL,CAAWkL,MAAjD,EAAyDJ,QAAzD,CAFrB,IAGD,MAAK9K,KAAL,CAAWmL,MAAX,IAAqB5J,4BAA4B0D,EAAE+F,MAA9B,EAAsC,MAAKhL,KAAL,CAAWmL,MAAjD,EAAyDL,QAAzD,CAHxB,EAG6F;CAC3F;CACD;;CAED;CACA;CACA;CACA,UAAM7B,kBAAkB3D,mBAAmBL,CAAnB,CAAxB;CACA,YAAKmG,QAAL,CAAc,EAACnC,gCAAD,EAAd;;CAEA;CACA,UAAMoC,WAAWrC,mBAAmB/D,CAAnB,EAAsBgE,eAAtB,QAAjB;CACA,UAAIoC,YAAY,IAAhB,EAAsB,OA9BgC;CAAA,UA+B/CrH,CA/B+C,GA+BvCqH,QA/BuC,CA+B/CrH,CA/B+C;CAAA,UA+B5CG,CA/B4C,GA+BvCkH,QA/BuC,CA+B5ClH,CA/B4C;;CAiCtD;;CACA,UAAMmH,YAAYlC,sBAAqBpF,CAArB,EAAwBG,CAAxB,CAAlB;;CAIA;CACA4F,UAAI,SAAJ,EAAe,MAAK/J,KAAL,CAAWuL,OAA1B;CACA,UAAMC,eAAe,MAAKxL,KAAL,CAAWuL,OAAX,CAAmBtG,CAAnB,EAAsBqG,SAAtB,CAArB;CACA,UAAIE,iBAAiB,KAArB,EAA4B;;CAE5B;CACA;CACA,UAAI,MAAKxL,KAAL,CAAWyL,oBAAf,EAAqClG,oBAAoBhD,aAApB;;CAErC;CACA;CACA;CACA,YAAK6I,QAAL,CAAc;CACZZ,kBAAU,IADE;;CAGZjB,eAAOvF,CAHK;CAIZ0F,eAAOvF;CAJK,OAAd;;CAOA;CACA;CACA;CACAxC,eAASY,aAAT,EAAwB+H,aAAaH,IAArC,EAA2C,MAAKuB,UAAhD;CACA/J,eAASY,aAAT,EAAwB+H,aAAaF,IAArC,EAA2C,MAAKuB,cAAhD;CACD,aAEDD,aAA4C,UAACzG,CAAD,EAAO;;CAEjD;CACA,UAAIA,EAAEW,IAAF,KAAW,WAAf,EAA4BX,EAAE2G,cAAF;;CAE5B;CACA,UAAMP,WAAWrC,mBAAmB/D,CAAnB,EAAsB,MAAKoE,KAAL,CAAWJ,eAAjC,QAAjB;CACA,UAAIoC,YAAY,IAAhB,EAAsB;CAP2B,UAQ5CrH,CAR4C,GAQpCqH,QARoC,CAQ5CrH,CAR4C;CAAA,UAQzCG,CARyC,GAQpCkH,QARoC,CAQzClH,CARyC;;CAUjD;;CACA,UAAI0H,MAAMC,OAAN,CAAc,MAAK9L,KAAL,CAAWyI,IAAzB,CAAJ,EAAoC;CAClC,YAAIe,UAASxF,IAAI,MAAKqF,KAAL,CAAWE,KAA5B;CAAA,YAAmCE,UAAStF,IAAI,MAAKkF,KAAL,CAAWK,KAA3D;;CADkC,0BAEflB,WAAW,MAAKxI,KAAL,CAAWyI,IAAtB,EAA4Be,OAA5B,EAAoCC,OAApC,CAFe;;CAAA;;CAEjCD,eAFiC;CAEzBC,eAFyB;;CAGlC,YAAI,CAACD,OAAD,IAAW,CAACC,OAAhB,EAAwB,OAHU;CAIlCzF,YAAI,MAAKqF,KAAL,CAAWE,KAAX,GAAmBC,OAAvB,EAA+BrF,IAAI,MAAKkF,KAAL,CAAWK,KAAX,GAAmBD,OAAtD;CACD;;CAED,UAAM6B,YAAYlC,sBAAqBpF,CAArB,EAAwBG,CAAxB,CAAlB;;CAIA;CACA,UAAMqH,eAAe,MAAKxL,KAAL,CAAW+L,MAAX,CAAkB9G,CAAlB,EAAqBqG,SAArB,CAArB;CACA,UAAIE,iBAAiB,KAArB,EAA4B;CAC1B,YAAI;CACF;CACA,gBAAKG,cAAL,CAAoB,IAAIK,UAAJ,CAAe,SAAf,CAApB;CACD,SAHD,CAGE,OAAOC,GAAP,EAAY;CACZ;CACA,cAAMrK,UAAUpB,SAAS0L,WAAT,CAAqB,aAArB,CAAV,kCAAN;CACA;CACA;CACAtK,gBAAMuK,cAAN,CAAqB,SAArB,EAAgC,IAAhC,EAAsC,IAAtC,EAA4C5L,MAA5C,EAAoD,CAApD,EAAuD,CAAvD,EAA0D,CAA1D,EAA6D,CAA7D,EAAgE,CAAhE,EAAmE,KAAnE,EAA0E,KAA1E,EAAiF,KAAjF,EAAwF,KAAxF,EAA+F,CAA/F,EAAkG,IAAlG;CACA,gBAAKoL,cAAL,CAAoB/J,KAApB;CACD;CACD;CACD;;CAED,YAAKwJ,QAAL,CAAc;CACZ7B,eAAOvF,CADK;CAEZ0F,eAAOvF;CAFK,OAAd;CAID,aAEDwH,iBAAgD,UAAC1G,CAAD,EAAO;CACrD,UAAI,CAAC,MAAKoE,KAAL,CAAWmB,QAAhB,EAA0B;;CAE1B,UAAMa,WAAWrC,mBAAmB/D,CAAnB,EAAsB,MAAKoE,KAAL,CAAWJ,eAAjC,QAAjB;CACA,UAAIoC,YAAY,IAAhB,EAAsB;CAJ+B,UAK9CrH,CAL8C,GAKtCqH,QALsC,CAK9CrH,CAL8C;CAAA,UAK3CG,CAL2C,GAKtCkH,QALsC,CAK3ClH,CAL2C;;CAMrD,UAAMmH,YAAYlC,sBAAqBpF,CAArB,EAAwBG,CAAxB,CAAlB;;CAEA,UAAM2G,WAAWhB,SAASxC,WAAT,OAAjB;CACA,UAAIwD,QAAJ,EAAc;CACZ;CACA,YAAI,MAAK9K,KAAL,CAAWyL,oBAAf,EAAqCvF,uBAAuB4E,SAASvI,aAAhC;CACtC;;CAID;CACA,YAAK6I,QAAL,CAAc;CACZZ,kBAAU,KADE;CAEZjB,eAAOkB,GAFK;CAGZf,eAAOe;CAHK,OAAd;;CAMA;CACA,YAAKzK,KAAL,CAAWoM,MAAX,CAAkBnH,CAAlB,EAAqBqG,SAArB;;CAEA,UAAIR,QAAJ,EAAc;AACZ,CAEA9I,oBAAY8I,SAASvI,aAArB,EAAoC+H,aAAaH,IAAjD,EAAuD,MAAKuB,UAA5D;CACA1J,oBAAY8I,SAASvI,aAArB,EAAoC+H,aAAaF,IAAjD,EAAuD,MAAKuB,cAA5D;CACD;CACF,aAEDhB,cAA6C,UAAC1F,CAAD,EAAO;CAClDqF,qBAAeN,UAAUK,KAAzB,CADkD;;CAGlD,aAAO,MAAKK,eAAL,CAAqBzF,CAArB,CAAP;CACD,aAEDoH,YAA2C,UAACpH,CAAD,EAAO;CAChDqF,qBAAeN,UAAUK,KAAzB;;CAEA,aAAO,MAAKsB,cAAL,CAAoB1G,CAApB,CAAP;CACD,aAGDqH,eAA8C,UAACrH,CAAD,EAAO;CACnD;CACAqF,qBAAeN,UAAUC,KAAzB;;CAEA,aAAO,MAAKS,eAAL,CAAqBzF,CAArB,CAAP;CACD,aAEDsH,aAA4C,UAACtH,CAAD,EAAO;CACjD;CACAqF,qBAAeN,UAAUC,KAAzB;;CAEA,aAAO,MAAK0B,cAAL,CAAoB1G,CAApB,CAAP;CACD;;;;;4CAtLsB;CACrB;CACA;CACA,UAAM6F,WAAWhB,SAASxC,WAAT,CAAqB,IAArB,CAAjB;CACA,UAAIwD,QAAJ,EAAc;CAAA,YACLvI,aADK,GACYuI,QADZ,CACLvI,aADK;;CAEZP,oBAAYO,aAAZ,EAA2ByH,UAAUK,KAAV,CAAgBF,IAA3C,EAAiD,KAAKuB,UAAtD;CACA1J,oBAAYO,aAAZ,EAA2ByH,UAAUC,KAAV,CAAgBE,IAA3C,EAAiD,KAAKuB,UAAtD;CACA1J,oBAAYO,aAAZ,EAA2ByH,UAAUK,KAAV,CAAgBD,IAA3C,EAAiD,KAAKuB,cAAtD;CACA3J,oBAAYO,aAAZ,EAA2ByH,UAAUC,KAAV,CAAgBG,IAA3C,EAAiD,KAAKuB,cAAtD;CACA,YAAI,KAAK3L,KAAL,CAAWyL,oBAAf,EAAqCvF,uBAAuB3D,aAAvB;CACtC;CACF;;CA6JD;;;;8BAeS;CACP;CACA;CACA,aAAOiK,MAAMC,YAAN,CAAmBD,MAAME,QAAN,CAAeC,IAAf,CAAoB,KAAK3M,KAAL,CAAW4M,QAA/B,CAAnB,EAA6D;CAClEnM,eAAO+F,WAAW,KAAKxG,KAAL,CAAW4M,QAAX,CAAoB5M,KAApB,CAA0BS,KAArC,CAD2D;;CAGlE;CACA;CACAkK,qBAAa,KAAKA,WALgD;CAMlE2B,sBAAc,KAAKA,YAN+C;CAOlED,mBAAW,KAAKA,SAPkD;CAQlEE,oBAAY,KAAKA;CARiD,OAA7D,CAAP;CAUD;;;GAtVwCC,MAAMK;;CAA5BtC,cAEZuC,cAAc;CAFFvC,cAIZwC,YAAY;CACjB;;;;;;CAMAnC,iBAAeoC,UAAUC,IAPR;;CASjB;;;;CAIAlC,YAAUiC,UAAUC,IAbH;;CAejB;;;;;CAKAxB,wBAAsBuB,UAAUC,IApBf;;CAsBjB;;;;CAIAxJ,gBAAc,sBAASzD,KAAT,2BAAoCC,QAApC,kCAAyE;CACrF,QAAID,MAAMC,QAAN,KAAmBD,MAAMC,QAAN,EAAgBiN,QAAhB,KAA6B,CAApD,EAAuD;CACrD,YAAM,IAAI/M,KAAJ,CAAU,+CAAV,CAAN;CACD;CACF,GA9BgB;;CAgCjB;;;CAGAsI,QAAMuE,UAAUG,OAAV,CAAkBH,UAAUI,MAA5B,CAnCW;;CAqCjB;;;;CAIAvD,SAAOmD,UAAUI,MAzCA;;CA2CjB;;;;;;;;;;;;;;;;;;;;CAoBAlC,UAAQ8B,UAAUK,MA/DD;;CAiEjB;;;;;;;;;;;;;;;;;;;;CAoBAlC,UAAQ6B,UAAUK,MArFD;;CAuFjB;;;;CAIA9B,WAASyB,UAAU5N,IA3FF;;CA6FjB;;;;CAIA2M,UAAQiB,UAAU5N,IAjGD;;CAmGjB;;;;CAIAgN,UAAQY,UAAU5N,IAvGD;;CAyGjB;;;;CAIAuL,eAAaqC,UAAU5N,IA7GN;;CA+GjB;;;CAGAuH,aAAW5G,SAlHM;CAmHjBU,SAAOV,SAnHU;CAoHjBuN,aAAWvN;CApHM;CAJAwK,cA2HZgD,eAAe;CACpB3C,iBAAe,KADK;CAEpBO,UAAQ,IAFY;CAGpBJ,YAAU,KAHU;CAIpBU,wBAAsB,IAJF;CAKpBhI,gBAAc,IALM;CAMpByH,UAAQ,IANY;CAOpBzC,QAAM,IAPc;CAQpB6E,aAAW,IARS;CASpB/B,WAAS,mBAAU,EATC;CAUpBQ,UAAQ,kBAAU,EAVE;CAWpBK,UAAQ,kBAAU,EAXE;CAYpBzB,eAAa,uBAAU;CAZH;;;;;;;;;;;;;CCtKxB;CACA;CACA;;;;;;;;;;;;;;;KAEqB6C;;;CAuInB,qBAAYxN,KAAZ,uBAAmC;CAAA;;CAAA,qHAC3BA,KAD2B;;CAAA,UAoDnCyN,WApDmC,GAoDE,UAACxI,CAAD,EAAI2E,QAAJ,EAAiB;AACpDG;CAEA;CACA,UAAM2D,cAAc,MAAK1N,KAAL,CAAWuL,OAAX,CAAmBtG,CAAnB,EAAsB0E,2BAA0BC,QAA1B,CAAtB,CAApB;CACA;CACA,UAAI8D,gBAAgB,KAApB,EAA2B,OAAO,KAAP;;CAE3B,YAAKtC,QAAL,CAAc,EAACZ,UAAU,IAAX,EAAiBmD,SAAS,IAA1B,EAAd;CACD,KA7DkC;;CAAA,UA+DnC5B,MA/DmC,GA+DH,UAAC9G,CAAD,EAAI2E,QAAJ,EAAiB;CAC/C,UAAI,CAAC,MAAKP,KAAL,CAAWmB,QAAhB,EAA0B,OAAO,KAAP;AAC1BT;CAEA,UAAM6D,SAASjE,2BAA0BC,QAA1B,CAAf;;CAEA,UAAMiE,wCAAmC;CACvC7J,WAAG4J,OAAO5J,CAD6B;CAEvCG,WAAGyJ,OAAOzJ;CAF6B,OAAzC;;CAKA;CACA,UAAI,MAAKnE,KAAL,CAAWoH,MAAf,EAAuB;CACrB;CADqB,YAEdpD,EAFc,GAEN6J,QAFM,CAEd7J,CAFc;CAAA,YAEXG,EAFW,GAEN0J,QAFM,CAEX1J,CAFW;;CAIrB;CACA;CACA;;CACA0J,iBAAS7J,CAAT,IAAc,MAAKqF,KAAL,CAAWyE,MAAzB;CACAD,iBAAS1J,CAAT,IAAc,MAAKkF,KAAL,CAAW0E,MAAzB;;CAEA;;CAVqB,gCAWU7G,wBAAuB2G,SAAS7J,CAAhC,EAAmC6J,SAAS1J,CAA5C,CAXV;CAAA;CAAA,YAWd6J,SAXc;CAAA,YAWHC,SAXG;;CAYrBJ,iBAAS7J,CAAT,GAAagK,SAAb;CACAH,iBAAS1J,CAAT,GAAa8J,SAAb;;CAEA;CACAJ,iBAASC,MAAT,GAAkB,MAAKzE,KAAL,CAAWyE,MAAX,IAAqB9J,KAAI6J,SAAS7J,CAAlC,CAAlB;CACA6J,iBAASE,MAAT,GAAkB,MAAK1E,KAAL,CAAW0E,MAAX,IAAqB5J,KAAI0J,SAAS1J,CAAlC,CAAlB;;CAEA;CACAyJ,eAAO5J,CAAP,GAAW6J,SAAS7J,CAApB;CACA4J,eAAOzJ,CAAP,GAAW0J,SAAS1J,CAApB;CACAyJ,eAAOpE,MAAP,GAAgBqE,SAAS7J,CAAT,GAAa,MAAKqF,KAAL,CAAWrF,CAAxC;CACA4J,eAAOnE,MAAP,GAAgBoE,SAAS1J,CAAT,GAAa,MAAKkF,KAAL,CAAWlF,CAAxC;CACD;;CAED;CACA,UAAMqH,eAAe,MAAKxL,KAAL,CAAW+L,MAAX,CAAkB9G,CAAlB,EAAqB2I,MAArB,CAArB;CACA,UAAIpC,iBAAiB,KAArB,EAA4B,OAAO,KAAP;;CAE5B,YAAKJ,QAAL,CAAcyC,QAAd;CACD,KA1GkC;;CAAA,UA4GnCK,UA5GmC,GA4GC,UAACjJ,CAAD,EAAI2E,QAAJ,EAAiB;CACnD,UAAI,CAAC,MAAKP,KAAL,CAAWmB,QAAhB,EAA0B,OAAO,KAAP;;CAE1B;CACA,UAAM2D,aAAa,MAAKnO,KAAL,CAAWoM,MAAX,CAAkBnH,CAAlB,EAAqB0E,2BAA0BC,QAA1B,CAArB,CAAnB;CACA,UAAIuE,eAAe,KAAnB,EAA0B,OAAO,KAAP;;CAI1B,UAAMN,wCAAmC;CACvCrD,kBAAU,KAD6B;CAEvCsD,gBAAQ,CAF+B;CAGvCC,gBAAQ;CAH+B,OAAzC;;CAMA;CACA;CACA,UAAMK,aAAaC,QAAQ,MAAKrO,KAAL,CAAWqL,QAAnB,CAAnB;CACA,UAAI+C,UAAJ,EAAgB;CAAA,mCACC,MAAKpO,KAAL,CAAWqL,QADZ;CAAA,YACPrH,GADO,wBACPA,CADO;CAAA,YACJG,GADI,wBACJA,CADI;;CAEd0J,iBAAS7J,CAAT,GAAaA,GAAb;CACA6J,iBAAS1J,CAAT,GAAaA,GAAb;CACD;;CAED,YAAKiH,QAAL,CAAcyC,QAAd;CACD,KArIkC;;CAGjC,UAAKxE,KAAL,GAAa;CACX;CACAmB,gBAAU,KAFC;;CAIX;CACAmD,eAAS,KALE;;CAOX;CACA3J,SAAGhE,MAAMqL,QAAN,GAAiBrL,MAAMqL,QAAN,CAAerH,CAAhC,GAAoChE,MAAMsO,eAAN,CAAsBtK,CARlD;CASXG,SAAGnE,MAAMqL,QAAN,GAAiBrL,MAAMqL,QAAN,CAAelH,CAAhC,GAAoCnE,MAAMsO,eAAN,CAAsBnK,CATlD;;CAWX;CACA2J,cAAQ,CAZG,EAYAC,QAAQ,CAZR;;CAcX;CACAQ,oBAAc;CAfH,KAAb;;CAkBA,QAAIvO,MAAMqL,QAAN,IAAkB,EAAErL,MAAM+L,MAAN,IAAgB/L,MAAMoM,MAAxB,CAAtB,EAAuD;CACrD;CACAoC,cAAQC,IAAR,CAAa,8FACX,uGADW,GAEX,6BAFF;CAGD;CA1BgC;CA2BlC;;;;yCAEmB;CAClB;CACA,UAAG,OAAOlO,OAAOmO,UAAd,KAA6B,WAA7B,IAA4C5E,SAASxC,WAAT,CAAqB,IAArB,aAAsC/G,OAAOmO,UAA5F,EAAwG;CACtG,aAAKtD,QAAL,CAAc,EAAEmD,cAAc,IAAhB,EAAd;CACD;CACF;;;+CAEyBI,wBAAmB;CAC3C;CACA,UAAIA,UAAUtD,QAAV,KACC,CAAC,KAAKrL,KAAL,CAAWqL,QAAZ,IACCsD,UAAUtD,QAAV,CAAmBrH,CAAnB,KAAyB,KAAKhE,KAAL,CAAWqL,QAAX,CAAoBrH,CAD9C,IAEC2K,UAAUtD,QAAV,CAAmBlH,CAAnB,KAAyB,KAAKnE,KAAL,CAAWqL,QAAX,CAAoBlH,CAH/C,CAAJ,EAKI;CACF,aAAKiH,QAAL,CAAc,EAAEpH,GAAG2K,UAAUtD,QAAV,CAAmBrH,CAAxB,EAA2BG,GAAGwK,UAAUtD,QAAV,CAAmBlH,CAAjD,EAAd;CACD;CACF;;;4CAEsB;CACrB,WAAKiH,QAAL,CAAc,EAACZ,UAAU,KAAX,EAAd,EADqB;CAEtB;;;sDAqF2B;CAAA;;CAC1B,UAAI/J,QAAQ,EAAZ;CAAA,UAAgBmO,eAAe,IAA/B;;CAEA;CACA,UAAMR,aAAaC,QAAQ,KAAKrO,KAAL,CAAWqL,QAAnB,CAAnB;CACA,UAAMlE,YAAY,CAACiH,UAAD,IAAe,KAAK/E,KAAL,CAAWmB,QAA5C;;CAEA,UAAMa,WAAW,KAAKrL,KAAL,CAAWqL,QAAX,IAAuB,KAAKrL,KAAL,CAAWsO,eAAnD;CACA,UAAMO,gBAAgB;CACpB;CACA7K,WAAG6E,SAAS,IAAT,KAAkB1B,SAAlB,GACD,KAAKkC,KAAL,CAAWrF,CADV,GAEDqH,SAASrH,CAJS;;CAMpB;CACAG,WAAG4E,SAAS,IAAT,KAAkB5B,SAAlB,GACD,KAAKkC,KAAL,CAAWlF,CADV,GAEDkH,SAASlH;CATS,OAAtB;;CAYA;CACA,UAAI,KAAKkF,KAAL,CAAWkF,YAAf,EAA6B;CAC3BK,uBAAehK,mBAAmBiK,aAAnB,EAAkC,KAAK7O,KAAL,CAAWwE,cAA7C,CAAf;CACD,OAFD,MAEO;CACL;CACA;CACA;CACA;CACA/D,gBAAQ6D,mBAAmBuK,aAAnB,EAAkC,KAAK7O,KAAL,CAAWwE,cAA7C,CAAR;CACD;;CA7ByB,mBAmCtB,KAAKxE,KAnCiB;CAAA,UAgCxB8O,gBAhCwB,UAgCxBA,gBAhCwB;CAAA,UAiCxBC,wBAjCwB,UAiCxBA,wBAjCwB;CAAA,UAkCxBC,uBAlCwB,UAkCxBA,uBAlCwB;;;CAqC1B,UAAMpC,WAAWJ,MAAME,QAAN,CAAeC,IAAf,CAAoB,KAAK3M,KAAL,CAAW4M,QAA/B,CAAjB;;CAEA;CACA,UAAMjG,YAAYsI,WAAYrC,SAAS5M,KAAT,CAAe2G,SAAf,IAA4B,EAAxC,EAA6CmI,gBAA7C,iDACfC,wBADe,EACY,KAAK1F,KAAL,CAAWmB,QADvB,+BAEfwE,uBAFe,EAEW,KAAK3F,KAAL,CAAWsE,OAFtB,gBAAlB;;CAKA;CACA;CACA,aACE;CAAC,qBAAD;CAAA,qBAAmB,KAAK3N,KAAxB,IAA+B,SAAS,KAAKyN,WAA7C,EAA0D,QAAQ,KAAK1B,MAAvE,EAA+E,QAAQ,KAAKmC,UAA5F;CACG1B,cAAMC,YAAN,CAAmBG,QAAnB,EAA6B;CAC5BjG,qBAAWA,SADiB;CAE5BlG,8BAAWmM,SAAS5M,KAAT,CAAeS,KAA1B,EAAoCA,KAApC,CAF4B;CAG5B6M,qBAAWsB;CAHiB,SAA7B;CADH,OADF;CASD;;;GAtUoCpC,MAAMK;;CAAxBW,UAEZV,cAAc;CAFFU,UAIZT,yBAEFxC,cAAcwC;;CAEjB;;;;;;;;;;;;;CAaAjE,QAAMkE,UAAUkC,KAAV,CAAgB,CAAC,MAAD,EAAS,GAAT,EAAc,GAAd,EAAmB,MAAnB,CAAhB;;CAEN;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BA9H,UAAQ4F,UAAUmC,SAAV,CAAoB,CAC1BnC,UAAUoC,KAAV,CAAgB;CACdvL,UAAMmJ,UAAUI,MADF;CAEdnF,WAAO+E,UAAUI,MAFH;CAGdtJ,SAAKkJ,UAAUI,MAHD;CAIdjF,YAAQ6E,UAAUI;CAJJ,GAAhB,CAD0B,EAO1BJ,UAAUK,MAPgB,EAQ1BL,UAAUkC,KAAV,CAAgB,CAAC,KAAD,CAAhB,CAR0B,CAApB;;CAWRJ,oBAAkB9B,UAAUK;CAC5B0B,4BAA0B/B,UAAUK;CACpC2B,2BAAyBhC,UAAUK;;CAEnC;;;;;;;;;;;;;;;;;CAiBAiB,mBAAiBtB,UAAUoC,KAAV,CAAgB;CAC/BpL,OAAGgJ,UAAUI,MADkB;CAE/BjJ,OAAG6I,UAAUI;CAFkB,GAAhB;CAIjB5I,kBAAgBwI,UAAUoC,KAAV,CAAgB;CAC9BpL,OAAGgJ,UAAUmC,SAAV,CAAoB,CAACnC,UAAUI,MAAX,EAAmBJ,UAAUK,MAA7B,CAApB,CAD2B;CAE9BlJ,OAAG6I,UAAUmC,SAAV,CAAoB,CAACnC,UAAUI,MAAX,EAAmBJ,UAAUK,MAA7B,CAApB;CAF2B,GAAhB;;CAKhB;;;;;;;;;;;;;;;;;;;;CAoBAhC,YAAU2B,UAAUoC,KAAV,CAAgB;CACxBpL,OAAGgJ,UAAUI,MADW;CAExBjJ,OAAG6I,UAAUI;CAFW,GAAhB;;CAKV;;;CAGAzG,aAAW5G;CACXU,SAAOV;CACPuN,aAAWvN;;CAxHMyN,UA2HZD,4BACFhD,cAAcgD;CACjBzE,QAAM;CACN1B,UAAQ;CACR0H,oBAAkB;CAClBC,4BAA0B;CAC1BC,2BAAyB;CACzBV,mBAAiB,EAACtK,GAAG,CAAJ,EAAOG,GAAG,CAAV;CACjBkH,YAAU;CACVxB,SAAO;;;CCxKX;CACA;CACA;CACA;CACA2D,UAAU6B,OAAV,GAAoB7B,SAApB;CACAA,UAAUjD,aAAV,GAA0BA,aAA1B;;;;;;;;"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index 40e72ca3..c3bf8cd3 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var V={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},W=V.mouse,B=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!P(e.target,o.props.handle,n)||o.props.cancel&&P(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=L(e,a,o);if(null!=i){var s=i.x,u=i.y,l=A(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&X(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,W.move,o.handleDrag),C(r,W.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=L(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=A(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=L(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=A(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&Y(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,W.move,o.handleDrag),j(s.ownerDocument,W.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return W=V.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return W=V.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return W=V.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return W=V.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,V.mouse.move,this.handleDrag),j(n,V.touch.move,this.handleDrag),j(n,V.mouse.stop,this.handleDragStop),j(n,V.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&Y(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);B.displayName="DraggableCore",B.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},B.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var H=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,U(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=U(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=_(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,U(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},e}return T(r,n),D(r,[{key:"componentWillMount",value:function(){!this.props.position||this.props.onDrag||this.props.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}},{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o={},a=null,i=!Boolean(this.props.position)||this.state.dragging,s=this.props.position||this.props.defaultPosition,u={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&i?this.state.x:s.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&i?this.state.y:s.y};this.state.isElementSVG?(n=u,r=this.props.positionOffset,a=R(n,r,"")):o=function(t,e){var n=R(t,e,"px");return x({},v("transform",w),n)}(u,this.props.positionOffset);var l=this.props,c=l.defaultClassName,p=l.defaultClassNameDragging,d=l.defaultClassNameDragged,g=e.Children.only(this.props.children),h=f(g.props.className||"",c,(x(t={},p,this.state.dragging),x(t,d,this.state.dragged),t));return e.createElement(B,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(g,{className:h,style:O({},g.props.style,o),transform:a}))}}]),r}(e.Component);return H.displayName="Draggable",H.propTypes=O({},B.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),positionOffset:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),H.defaultProps=O({},B.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),H.default=H,H.DraggableCore=B,H}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var V={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},B=V.mouse,H=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!M(e.target,o.props.handle,n)||o.props.cancel&&M(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=L(e,a,o);if(null!=i){var s=i.x,u=i.y,l=A(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&X(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,B.move,o.handleDrag),C(r,B.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=L(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=A(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=L(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=A(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&Y(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,B.move,o.handleDrag),j(s.ownerDocument,B.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return B=V.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return B=V.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return B=V.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return B=V.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,V.mouse.move,this.handleDrag),j(n,V.touch.move,this.handleDrag),j(n,V.mouse.stop,this.handleDragStop),j(n,V.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&Y(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);H.displayName="DraggableCore",H.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},H.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var W=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,U(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=U(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=_(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,U(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},!t.position||t.onDrag||t.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),e}return T(r,n),D(r,[{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o={},a=null,i=!Boolean(this.props.position)||this.state.dragging,s=this.props.position||this.props.defaultPosition,u={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&i?this.state.x:s.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&i?this.state.y:s.y};this.state.isElementSVG?(n=u,r=this.props.positionOffset,a=R(n,r,"")):o=function(t,e){var n=R(t,e,"px");return x({},v("transform",w),n)}(u,this.props.positionOffset);var l=this.props,c=l.defaultClassName,p=l.defaultClassNameDragging,d=l.defaultClassNameDragged,g=e.Children.only(this.props.children),h=f(g.props.className||"",c,(x(t={},p,this.state.dragging),x(t,d,this.state.dragged),t));return e.createElement(H,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(g,{className:h,style:O({},g.props.style,o),transform:a}))}}]),r}(e.Component);return W.displayName="Draggable",W.propTypes=O({},H.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),positionOffset:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),W.defaultProps=O({},H.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),W.default=W,W.DraggableCore=H,W}); //# sourceMappingURL=react-draggable.min.js.map diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index c1339b34..1a77199d 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n }\n\n componentWillMount() {\n if (this.props.position && !(this.props.onDrag || this.props.onStop)) {\n // eslint-disable-next-line\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","getTranslation","positionOffset","unitSuffix","translation","x","y","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","controlPos","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","createCSSTransform","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","getTranslation","positionOffset","unitSuffix","translation","x","y","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","controlPos","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","createCSSTransform","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index a9a0f8e8..1d09caf7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.3.0", + "version": "3.3.1", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From 9998c562dee9aa9ab8aa2e5816ea0530ffadd105 Mon Sep 17 00:00:00 2001 From: Pavel Prokudin Date: Mon, 25 Feb 2019 11:35:11 +0300 Subject: [PATCH 314/412] Fix selection styles --- lib/utils/domFns.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 6cea521a..3c9ab03c 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -150,8 +150,8 @@ export function addUserSelectStyles(doc: ?Document) { styleEl = doc.createElement('style'); styleEl.type = 'text/css'; styleEl.id = 'react-draggable-style-el'; - styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\n'; - styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; + styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n'; + styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n'; doc.getElementsByTagName('head')[0].appendChild(styleEl); } if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); From 4ea6b6173b0f070350cd0e1f6ee3300c9c376cfb Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 16 Aug 2019 14:29:14 -0500 Subject: [PATCH 315/412] fix(dev): don't rely on global webpack for build-watch --- script/build-watch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/build-watch b/script/build-watch index f48d04b0..e89fb264 100755 --- a/script/build-watch +++ b/script/build-watch @@ -7,7 +7,7 @@ function finish { } make clean -DRAGGABLE_DEBUG=true webpack --watch --devtool inline-source-map & +DRAGGABLE_DEBUG=true $BIN/webpack --watch --devtool inline-source-map & WEBPACK_PID=$! # # Run a static server and run the example in it. From 0513c257ed3b7802bac8139449d762b1f7704c7d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 16 Aug 2019 14:31:38 -0500 Subject: [PATCH 316/412] release v3.3.2 --- CHANGELOG.md | 5 +++++ bower.json | 2 +- dist/react-draggable.js | 4 ++-- dist/react-draggable.js.map | 2 +- dist/react-draggable.min.js | 2 +- dist/react-draggable.min.js.map | 2 +- package.json | 2 +- 7 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91231020..541c6f10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 3.3.2 (Aug 16, 2019) + +- Use `all: inherit` instead of `background: transparent;` to fix selection styles. + - Fixes https://github.com/mzabriskie/react-draggable/issues/315 + ### 3.3.1 (Aug 12, 2019) - Fix React 16.9 `componentWillMount` deprecation. diff --git a/bower.json b/bower.json index 898b91e9..d11203cc 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.3.1", + "version": "3.3.2", "homepage": "https://github.com/mzabriskie/react-draggable", "authors": [ "Matt Zabriskie", diff --git a/dist/react-draggable.js b/dist/react-draggable.js index df240626..86943320 100644 --- a/dist/react-draggable.js +++ b/dist/react-draggable.js @@ -1241,8 +1241,8 @@ styleEl = doc.createElement('style'); styleEl.type = 'text/css'; styleEl.id = 'react-draggable-style-el'; - styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\n'; - styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\n'; + styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n'; + styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n'; doc.getElementsByTagName('head')[0].appendChild(styleEl); } if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map index 27b5d945..2648de2b 100644 --- a/dist/react-draggable.js.map +++ b/dist/react-draggable.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","controlPos","positionOffset","translation","getTranslation","browserPrefix","createSVGTransform","unitSuffix","defaultX","defaultY","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","controlPos","positionOffset","translation","getTranslation","browserPrefix","createSVGTransform","unitSuffix","defaultX","defaultY","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js index c3bf8cd3..d4096b43 100644 --- a/dist/react-draggable.min.js +++ b/dist/react-draggable.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var V={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},B=V.mouse,H=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!M(e.target,o.props.handle,n)||o.props.cancel&&M(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=L(e,a,o);if(null!=i){var s=i.x,u=i.y,l=A(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&X(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,B.move,o.handleDrag),C(r,B.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=L(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=A(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=L(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=A(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&Y(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,B.move,o.handleDrag),j(s.ownerDocument,B.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return B=V.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return B=V.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return B=V.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return B=V.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,V.mouse.move,this.handleDrag),j(n,V.touch.move,this.handleDrag),j(n,V.mouse.stop,this.handleDragStop),j(n,V.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&Y(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);H.displayName="DraggableCore",H.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},H.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var W=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,U(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=U(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=_(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,U(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},!t.position||t.onDrag||t.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),e}return T(r,n),D(r,[{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o={},a=null,i=!Boolean(this.props.position)||this.state.dragging,s=this.props.position||this.props.defaultPosition,u={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&i?this.state.x:s.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&i?this.state.y:s.y};this.state.isElementSVG?(n=u,r=this.props.positionOffset,a=R(n,r,"")):o=function(t,e){var n=R(t,e,"px");return x({},v("transform",w),n)}(u,this.props.positionOffset);var l=this.props,c=l.defaultClassName,p=l.defaultClassNameDragging,d=l.defaultClassNameDragged,g=e.Children.only(this.props.children),h=f(g.props.className||"",c,(x(t={},p,this.state.dragging),x(t,d,this.state.dragged),t));return e.createElement(H,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(g,{className:h,style:O({},g.props.style,o),transform:a}))}}]),r}(e.Component);return W.displayName="Draggable",W.propTypes=O({},H.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),positionOffset:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),W.defaultProps=O({},H.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),W.default=W,W.DraggableCore=H,W}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var V={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},B=V.mouse,H=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!M(e.target,o.props.handle,n)||o.props.cancel&&M(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=L(e,a,o);if(null!=i){var s=i.x,u=i.y,l=A(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&X(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,B.move,o.handleDrag),C(r,B.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=L(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=A(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=L(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=A(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&Y(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,B.move,o.handleDrag),j(s.ownerDocument,B.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return B=V.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return B=V.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return B=V.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return B=V.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,V.mouse.move,this.handleDrag),j(n,V.touch.move,this.handleDrag),j(n,V.mouse.stop,this.handleDragStop),j(n,V.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&Y(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);H.displayName="DraggableCore",H.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},H.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var W=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,U(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=U(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=_(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,U(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},!t.position||t.onDrag||t.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),e}return T(r,n),D(r,[{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o={},a=null,i=!Boolean(this.props.position)||this.state.dragging,s=this.props.position||this.props.defaultPosition,u={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&i?this.state.x:s.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&i?this.state.y:s.y};this.state.isElementSVG?(n=u,r=this.props.positionOffset,a=R(n,r,"")):o=function(t,e){var n=R(t,e,"px");return x({},v("transform",w),n)}(u,this.props.positionOffset);var l=this.props,c=l.defaultClassName,p=l.defaultClassNameDragging,d=l.defaultClassNameDragged,g=e.Children.only(this.props.children),h=f(g.props.className||"",c,(x(t={},p,this.state.dragging),x(t,d,this.state.dragged),t));return e.createElement(H,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(g,{className:h,style:O({},g.props.style,o),transform:a}))}}]),r}(e.Component);return W.displayName="Draggable",W.propTypes=O({},H.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),positionOffset:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),W.defaultProps=O({},H.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),W.default=W,W.DraggableCore=H,W}); //# sourceMappingURL=react-draggable.min.js.map diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map index 1a77199d..d25ea802 100644 --- a/dist/react-draggable.min.js.map +++ b/dist/react-draggable.min.js.map @@ -1 +1 @@ -{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {background: transparent;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {background: transparent;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","getTranslation","positionOffset","unitSuffix","translation","x","y","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","controlPos","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","createCSSTransform","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","getTranslation","positionOffset","unitSuffix","translation","x","y","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","controlPos","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","createCSSTransform","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 1d09caf7..8f08958b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.3.1", + "version": "3.3.2", "description": "React draggable component", "main": "dist/react-draggable.js", "browser": "dist/react-draggable.js", From c55cafb69f8f2dd08b6948a487038745bcc0c8d8 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 26 Aug 2019 13:28:32 -0500 Subject: [PATCH 317/412] feat(build): Upgrade to Babel 7, remove Rollup, simplify build. We now use webpack for all bundling again, and babel directly for a cjs build, resulting in a faster, more repeatable build and smaller size when including react-draggable via a bundler. --- .babelrc | 15 +- .gitignore | 2 + Makefile | 18 +- README.md | 9 + example/example.js | 56 +- example/index.html | 9 +- index.js | 4 +- package.json | 65 +- rollup.config.js | 61 - script/build-watch | 25 - webpack.config.js | 37 +- yarn.lock | 7793 +++++++++++++++++++++++++------------------- 12 files changed, 4598 insertions(+), 3496 deletions(-) delete mode 100644 rollup.config.js delete mode 100755 script/build-watch diff --git a/.babelrc b/.babelrc index 1dc3e280..e80fabbd 100644 --- a/.babelrc +++ b/.babelrc @@ -1,16 +1,21 @@ { "presets": [ - ["env", { "modules": false }], - "stage-2", - "react" + [ + "@babel/preset-env", + { + "modules": false + } + ], + "@babel/react", + "@babel/preset-flow" ], "plugins": [ - "transform-flow-comments", + "@babel/transform-flow-comments", + "@babel/plugin-proposal-class-properties", ], "env": { "test": { "plugins": [ - // Makes power-assert work "espower" ] } diff --git a/.gitignore b/.gitignore index cf9cb086..9ceef6ae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ .idea *.iml node_modules/ +build/ +web/ diff --git a/Makefile b/Makefile index d7513bae..01fb3f80 100644 --- a/Makefile +++ b/Makefile @@ -2,11 +2,8 @@ # Thanks @andreypopp export BIN := $(shell yarn bin) -DIST = dist -LIB = $(DIST)/react-draggable.js -MIN = $(DIST)/react-draggable.min.js - -.PHONY: test dev lint build clean +.PHONY: test dev lint build clean install link +.DEFAULT_GOAL := build clean: rm -rf dist @@ -16,20 +13,19 @@ lint: @$(BIN)/eslint lib/* lib/utils/* specs/* @$(BIN)/tsc -p typings -build: $(LIB) $(MIN) +build: clean + $(BIN)/babel --out-dir ./build ./lib + $(BIN)/webpack --mode=production --display-modules # Allows usage of `make install`, `make link` install link: @yarn $@ -dist/%.js: $(BIN) - @$(BIN)/rollup -c - test: $(BIN) @NODE_ENV=test $(BIN)/karma start --single-run -dev: $(BIN) - script/build-watch +dev: $(BIN) clean + DRAGGABLE_DEBUG=true $(BIN)/webpack-dev-server node_modules/.bin: install diff --git a/README.md b/README.md index a2959edb..7210fddd 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,15 @@ A simple component for making elements draggable. - [Demo](http://mzabriskie.github.io/react-draggable/example/) - [Changelog](CHANGELOG.md) + +|Version | Compatibility| +|------------|--------------| +|4.x | React 16.3+ | +|3.x | React 15-16 | +|2.x | React 0.14 - 15 | +|1.x | React 0.13 - 0.14 | +|0.x | React 0.10 - 0.13 | + ------ #### Technical Documentation diff --git a/example/example.js b/example/example.js index 641b3ca0..92f71c5f 100644 --- a/example/example.js +++ b/example/example.js @@ -1,19 +1,17 @@ var Draggable = window.ReactDraggable; -var App = React.createClass({ - getInitialState() { - return { - activeDrags: 0, - deltaPosition: { - x: 0, y: 0 - }, - controlledPosition: { - x: -400, y: 200 - } - }; - }, +class App extends React.Component { + state = { + activeDrags: 0, + deltaPosition: { + x: 0, y: 0 + }, + controlledPosition: { + x: -400, y: 200 + } + }; - handleDrag(e, ui) { + handleDrag = (e, ui) => { const {x, y} = this.state.deltaPosition; this.setState({ deltaPosition: { @@ -21,41 +19,41 @@ var App = React.createClass({ y: y + ui.deltaY, } }); - }, + }; - onStart() { + onStart = () => { this.setState({activeDrags: ++this.state.activeDrags}); - }, + }; - onStop() { + onStop = () => { this.setState({activeDrags: --this.state.activeDrags}); - }, + }; // For controlled component - adjustXPos(e) { + adjustXPos = (e) => { e.preventDefault(); e.stopPropagation(); const {x, y} = this.state.controlledPosition; this.setState({controlledPosition: {x: x - 10, y}}); - }, + }; - adjustYPos(e) { + adjustYPos = (e) => { e.preventDefault(); e.stopPropagation(); const {controlledPosition} = this.state; const {x, y} = controlledPosition; this.setState({controlledPosition: {x, y: y - 10}}); - }, + }; - onControlledDrag(e, position) { + onControlledDrag = (e, position) => { const {x, y} = position; this.setState({controlledPosition: {x, y}}); - }, + }; - onControlledDragStop(e, position) { + onControlledDragStop = (e, position) => { this.onControlledDrag(e, position); this.onStop(); - }, + }; render() { const dragHandlers = {onStart: this.onStart, onStop: this.onStop}; @@ -127,8 +125,8 @@ var App = React.createClass({ I can only be moved within the confines of the body element.
- -
+ +
I already have an absolute position.
@@ -170,6 +168,6 @@ var App = React.createClass({
); } -}); +} ReactDOM.render(, document.getElementById('container')); diff --git a/example/index.html b/example/index.html index 63c5c337..bca50faa 100644 --- a/example/index.html +++ b/example/index.html @@ -55,10 +55,11 @@
- - - - + + + + + diff --git a/index.js b/index.js index 10429816..0e299ca4 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -var Draggable = require('./lib/Draggable').default; +var Draggable = require('./build/Draggable').default; // Previous versions of this lib exported as the root export. As to not break // them, or TypeScript, we export *both* as the root and as 'default'. @@ -6,4 +6,4 @@ var Draggable = require('./lib/Draggable').default; // and https://github.com/mzabriskie/react-draggable/issues/266 module.exports = Draggable; module.exports.default = Draggable; -module.exports.DraggableCore = require('./lib/DraggableCore').default; +module.exports.DraggableCore = require('./build/DraggableCore').default; diff --git a/package.json b/package.json index 8f08958b..272bfc72 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,8 @@ "name": "react-draggable", "version": "3.3.2", "description": "React draggable component", - "main": "dist/react-draggable.js", - "browser": "dist/react-draggable.js", + "main": "index.js", + "browser": "web/react-draggable.js", "scripts": { "test": "make test", "test-debug": "karma start --browsers=Chrome", @@ -31,56 +31,49 @@ }, "homepage": "https://github.com/mzabriskie/react-draggable", "devDependencies": { + "@babel/cli": "^7.0.0", + "@babel/core": "^7.5.5", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-transform-flow-comments": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-react": "^7.0.0", "@types/react": "^16.0.25", "@types/react-dom": "^16.0.3", - "babel-cli": "^6.26.0", - "babel-core": "^6.26.0", - "babel-eslint": "^8.0.2", - "babel-loader": "^7.1.2", - "babel-plugin-espower": "^2.3.2", - "babel-plugin-external-helpers": "^6.22.0", - "babel-plugin-transform-flow-comments": "^6.22.0", - "babel-preset-env": "^1.6.1", - "babel-preset-react": "^6.24.1", - "babel-preset-stage-2": "^6.24.1", - "core-js": "^2.5.1", - "eslint": "^4.12.0", + "babel-eslint": "^10.0.3", + "babel-loader": "^8.0.6", + "babel-plugin-espower": "^3.0.1", + "eslint": "^6.2.2", "eslint-plugin-react": "^7.5.1", "flow-bin": "^0.69.0", - "jasmine-core": "^2.8.0", + "jasmine-core": "^3.4.0", "json-loader": "^0.5.7", - "karma": "^1.7.1", - "karma-chrome-launcher": "^2.2.0", - "karma-cli": "1.0.1", + "karma": "^4.2.0", + "karma-chrome-launcher": "^3.1.0", + "karma-cli": "2.0.0", "karma-firefox-launcher": "^1.0.1", "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^1.1.0", + "karma-jasmine": "^2.0.1", "karma-phantomjs-launcher": "^1.0.4", "karma-phantomjs-shim": "^1.5.0", - "karma-webpack": "^2.0.6", + "karma-webpack": "^4.0.2", "lodash": "^4.17.4", - "open": "0.0.5", "phantomjs-prebuilt": "^2.1.16", "power-assert": "^1.4.4", "pre-commit": "^1.2.2", - "puppeteer": "^0.13.0", - "react": "^16.1.1", - "react-dom": "^16.1.1", + "puppeteer": "^1.19.0", + "react": "^16.3", + "react-dom": "^16.3", "react-frame-component": "^2.0.0", "react-test-renderer": "^16.1.1", - "rollup": "^0.57.1", - "rollup-plugin-babel": "^3.0.3", - "rollup-plugin-commonjs": "^9.1.0", - "rollup-plugin-node-resolve": "^3.3.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-plugin-size-snapshot": "^0.2.1", - "rollup-plugin-uglify": "^3.0.0", - "semver": "^5.4.1", + "semver": "^6.3.0", "static-server": "^3.0.0", - "typescript": "^2.6.1", + "terser-webpack-plugin": "^1.4.1", + "typescript": "^3.5.3", "uglify-js": "^3.2.0", - "webpack": "^3.8.1", - "webpack-dev-server": "^2.9.5" + "webpack": "^4.39.2", + "webpack-cli": "^3.3.7", + "webpack-dev-server": "^3.8.0" }, "precommit": [ "lint", @@ -90,4 +83,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} \ No newline at end of file +} diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index e0236286..00000000 --- a/rollup.config.js +++ /dev/null @@ -1,61 +0,0 @@ -import nodeResolve from 'rollup-plugin-node-resolve'; -import commonjs from 'rollup-plugin-commonjs'; -import babel from 'rollup-plugin-babel'; -import replace from 'rollup-plugin-replace'; -import uglify from 'rollup-plugin-uglify'; -import { sizeSnapshot } from 'rollup-plugin-size-snapshot'; - -const input = './lib/umd.js'; - -export default [ - { - input, - output: { - file: 'dist/react-draggable.js', - format: 'umd', - sourcemap: true, - name: 'ReactDraggable', - globals: { - react: 'React', - 'react-dom': 'ReactDOM' - } - }, - external: ['react', 'react-dom'], - plugins: [ - nodeResolve(), - commonjs({ include: 'node_modules/**' }), - babel({ exclude: 'node_modules/**', plugins: ['external-helpers'] }), - replace({ - 'process.env.DRAGGABLE_DEBUG': 'false', - 'process.env.NODE_ENV': JSON.stringify('development') - }), - sizeSnapshot() - ] - }, - - { - input, - output: { - file: 'dist/react-draggable.min.js', - format: 'umd', - sourcemap: true, - name: 'ReactDraggable', - globals: { - react: 'React', - 'react-dom': 'ReactDOM' - } - }, - external: ['react', 'react-dom'], - plugins: [ - nodeResolve(), - commonjs({ include: 'node_modules/**' }), - babel({ exclude: 'node_modules/**', plugins: ['external-helpers'] }), - replace({ - 'process.env.DRAGGABLE_DEBUG': 'false', - 'process.env.NODE_ENV': JSON.stringify('production') - }), - sizeSnapshot(), - uglify() - ] - } -]; diff --git a/script/build-watch b/script/build-watch deleted file mode 100755 index e89fb264..00000000 --- a/script/build-watch +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -e - -function finish { - echo -e "\nExiting..." - kill $WEBPACK_PID - kill $SERVER_PID -} - -make clean -DRAGGABLE_DEBUG=true $BIN/webpack --watch --devtool inline-source-map & -WEBPACK_PID=$! - -# # Run a static server and run the example in it. -$BIN/static-server . & -SERVER_PID=$! - -# Open browser -node -e "\ - var open = require('open'); open('http://localhost:9080/example'); \ -" - -# Kill webpack on exit. -trap finish EXIT - -wait diff --git a/webpack.config.js b/webpack.config.js index 935c70a9..e3769062 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,14 +1,28 @@ -var webpack = require('webpack'); +const path = require('path'); +const webpack = require('webpack'); +const TerserPlugin = require('terser-webpack-plugin'); module.exports = { - entry: './index.js', + entry: { + "react-draggable": "./index.js", + "react-draggable.min": "./index.js", + }, output: { - filename: './dist/react-draggable.js', - sourceMapFilename: './dist/react-draggable.js.map', + filename: '[name].js', + sourceMapFilename: '[name].js.map', devtoolModuleFilenameTemplate: '../[resource-path]', library: 'ReactDraggable', - libraryTarget: 'umd' + libraryTarget: 'umd', + path: path.resolve(__dirname, 'web'), }, + devServer: { + contentBase: '.', + hot: true, + open: true, + openPage: '/example/index.html', + writeToDisk: true, + }, + devtool: 'source-map', externals: { 'react': { 'commonjs': 'react', @@ -33,9 +47,6 @@ module.exports = { } ] }, - resolve: { - extensions: ['.js'] - }, plugins: [ new webpack.EnvironmentPlugin({ // Default values @@ -44,5 +55,13 @@ module.exports = { }), // Scope hoisting new webpack.optimize.ModuleConcatenationPlugin(), - ] + ], + optimization: { + minimizer: [new TerserPlugin({ + include: /\.min\.js$/, + sourceMap: true, + terserOptions: { + } + })], + } }; diff --git a/yarn.lock b/yarn.lock index 6fb7c5c2..149f54a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,1139 +2,1412 @@ # yarn lockfile v1 -"@babel/code-frame@7.0.0-beta.32", "@babel/code-frame@^7.0.0-beta.31": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.32.tgz#04f231b8ec70370df830d9926ce0f5add074ec4c" +"@babel/cli@^7.0.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.5.5.tgz#bdb6d9169e93e241a08f5f7b0265195bf38ef5ec" + integrity sha512-UHI+7pHv/tk9g6WXQKYz+kmXTI77YtuY3vqC59KIqcoWEjsJJSG6rAxKaLsgj3LDyadsPrCB929gVOKM6Hui0w== + dependencies: + commander "^2.8.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.1.0" + glob "^7.0.0" + lodash "^4.17.13" + mkdirp "^0.5.1" + output-file-sync "^2.0.0" + slash "^2.0.0" + source-map "^0.5.0" + optionalDependencies: + chokidar "^2.0.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" + integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helpers" "^7.5.5" + "@babel/parser" "^7.5.5" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.0.0", "@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" + integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== + dependencies: + "@babel/types" "^7.5.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-builder-react-jsx@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" + integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== + dependencies: + "@babel/types" "^7.3.0" + esutils "^2.0.0" + +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/helper-create-class-features-plugin@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" + integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + +"@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== + dependencies: + "@babel/types" "^7.5.5" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" + integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" + integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== + dependencies: + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== dependencies: chalk "^2.0.0" esutils "^2.0.2" - js-tokens "^3.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" + integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-class-properties@^7.0.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" + integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-dynamic-import@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" + integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" + integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" + integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" + integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-flow@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" + integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" + integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" + integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.13" -"@babel/helper-function-name@7.0.0-beta.32": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.32.tgz#6161af4419f1b4e3ed2d28c0c79c160e218be1f3" +"@babel/plugin-transform-classes@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.32" - "@babel/template" "7.0.0-beta.32" - "@babel/types" "7.0.0-beta.32" + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + globals "^11.1.0" -"@babel/helper-get-function-arity@7.0.0-beta.32": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.32.tgz#93721a99db3757de575a83bab7c453299abca568" +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== dependencies: - "@babel/types" "7.0.0-beta.32" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/template@7.0.0-beta.32": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.32.tgz#e1d9fdbd2a7bcf128f2f920744a67dab18072495" +"@babel/plugin-transform-destructuring@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" + integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== dependencies: - "@babel/code-frame" "7.0.0-beta.32" - "@babel/types" "7.0.0-beta.32" - babylon "7.0.0-beta.32" - lodash "^4.2.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/traverse@^7.0.0-beta.31": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.32.tgz#b78b754c6e1af3360626183738e4c7a05951bc99" +"@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" + integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== dependencies: - "@babel/code-frame" "7.0.0-beta.32" - "@babel/helper-function-name" "7.0.0-beta.32" - "@babel/types" "7.0.0-beta.32" - babylon "7.0.0-beta.32" - debug "^3.0.1" - globals "^10.0.0" - invariant "^2.2.0" - lodash "^4.2.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" -"@babel/types@7.0.0-beta.32", "@babel/types@^7.0.0-beta.31": - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.32.tgz#c317d0ecc89297b80bbcb2f50608e31f6452a5ff" +"@babel/plugin-transform-duplicate-keys@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" + integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-flow-comments@^7.0.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.5.5.tgz#1cc0a3640f896c3457db09fa705da1381feba4dd" + integrity sha512-tz3MWUB0MDIlFVWFeThSvY34J8JbLHJLMVkNJ3dce7M2Py1rMFHw+df3E4N5bW4C8rPTJIBl/6SE1vKfTndxJQ== + dependencies: + "@babel/generator" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" + integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + +"@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" + integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" + integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== + dependencies: + "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" + integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" + integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== + dependencies: + regexp-tree "^0.1.6" + +"@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + +"@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== + dependencies: + "@babel/helper-call-delegate" "^7.4.4" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" + integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" + integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" + integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" + integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== + dependencies: + "@babel/helper-builder-react-jsx" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-regenerator@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" + integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" + integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/preset-env@^7.0.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" + integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.5.5" + "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.5.0" + "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.5.5" + browserslist "^4.6.0" + core-js-compat "^3.1.1" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/preset-flow@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" + integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + +"@babel/preset-react@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" + integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + +"@babel/template@^7.1.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" + integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" + integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== dependencies: esutils "^2.0.2" - lodash "^4.2.0" + lodash "^4.17.13" to-fast-properties "^2.0.0" -"@types/acorn@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.3.tgz#d1f3e738dde52536f9aad3d3380d14e448820afd" +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== dependencies: - "@types/estree" "*" + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" -"@types/estree@*", "@types/estree@0.0.38": - version "0.0.38" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2" +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "8.0.53" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.53.tgz#396b35af826fa66aad472c8cb7b8d5e277f4e6d8" + version "12.7.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44" + integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg== + +"@types/prop-types@*": + version "15.7.1" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.1.tgz#f1a11e7babb0c3cad68100be381d1e064c68f1f6" + integrity sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg== "@types/react-dom@^16.0.3": - version "16.0.3" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.0.3.tgz#8accad7eabdab4cca3e1a56f5ccb57de2da0ff64" + version "16.9.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.0.tgz#ba6ddb00bf5de700b0eb91daa452081ffccbfdea" + integrity sha512-OL2lk7LYGjxn4b0efW3Pvf2KBVP0y1v3wip1Bp7nA79NkOpElH98q3WdCEdDj93b2b0zaeBG9DvriuKjIK5xDA== dependencies: - "@types/node" "*" "@types/react" "*" "@types/react@*", "@types/react@^16.0.25": - version "16.0.25" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.25.tgz#bf696b83fe480c5e0eff4335ee39ebc95884a1ed" + version "16.9.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.2.tgz#6d1765431a1ad1877979013906731aae373de268" + integrity sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg== + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" -accepts@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" + "@webassemblyjs/wast-printer" "1.8.5" -accepts@~1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== dependencies: - mime-types "~2.1.16" - negotiator "0.6.1" + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== dependencies: - acorn "^4.0.3" + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" -acorn-dynamic-import@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== dependencies: - acorn "^5.0.0" + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" acorn-es7-plugin@^1.0.12: version "1.1.7" resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" + integrity sha1-8u4fMiipDurRJF+asZIusucdM2s= -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" +acorn-jsx@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" + integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== -acorn@^4.0.0, acorn@^4.0.3: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" +acorn@^5.0.0: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^5.0.0, acorn@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" +acorn@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" + integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== -acorn@^5.5.3: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" +acorn@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" + integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ== after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= -agent-base@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.1.2.tgz#80fa6cde440f4dcf9af2617cf246099b5d99f0c8" +agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== dependencies: es6-promisify "^5.0.0" -ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.3, ajv@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.0.tgz#eb2840746e9dc48bd5e063a36e3fd400c5eab5a9" +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" + fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" - dependencies: - color-convert "^1.9.0" + integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz#2fb624fe0e84bccab00afee3d0006ed310f22f09" + integrity sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g== dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" + normalize-path "^3.0.0" + picomatch "^2.0.4" -aproba@^1.0.3: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= -arr-flatten@^1.0.1: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-filter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-flatten@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= dependencies: define-properties "^1.1.2" es-abstract "^1.7.0" -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arraybuffer.slice@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== asn1.js@^4.0.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: + object-assign "^4.1.1" util "0.10.3" -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -async-limiter@~1.0.0: +astral-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.1.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: - lodash "^4.14.0" - -async@~0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.2.1, aws4@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -babel-cli@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" - fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" - slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" - optionalDependencies: - chokidar "^1.6.1" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - -babel-eslint@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.0.2.tgz#e44fb9a037d749486071d52d65312f5c20aa7530" - dependencies: - "@babel/code-frame" "^7.0.0-beta.31" - "@babel/traverse" "^7.0.0-beta.31" - "@babel/types" "^7.0.0-beta.31" - babylon "^7.0.0-beta.31" - -babel-generator@^6.1.0, babel-generator@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.6" - trim-right "^1.0.1" - -babel-helper-bindify-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-explode-class@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" - dependencies: - babel-helper-bindify-decorators "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" - dependencies: - find-cache-dir "^1.0.0" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +babel-eslint@^10.0.3: + version "10.0.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" + integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-loader@^8.0.6: + version "8.0.6" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" + integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== + dependencies: + find-cache-dir "^2.0.0" loader-utils "^1.0.2" mkdirp "^0.5.1" + pify "^4.0.1" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== dependencies: - babel-runtime "^6.22.0" + object.assign "^4.1.0" -babel-plugin-espower@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e" +babel-plugin-espower@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-3.0.1.tgz#180db17126f88e754105b8b5216d21e520a6bd4e" + integrity sha512-Ms49U7VIAtQ/TtcqRbD6UBmJBUCSxiC3+zPc+eGqxKUIFO1lTshyEDRUjhoAbd2rWfwYf3cZ62oXozrd8W6J0A== dependencies: - babel-generator "^6.1.0" - babylon "^6.1.0" + "@babel/generator" "^7.0.0" + "@babel/parser" "^7.0.0" call-matcher "^1.0.0" core-js "^2.0.0" espower-location-detector "^1.0.0" espurify "^1.6.0" estraverse "^4.1.1" -babel-plugin-external-helpers@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-async-generators@^6.5.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" - -babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-generator-functions@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-generators "^6.5.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-class-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" - dependencies: - babel-helper-explode-class "^6.24.1" - babel-plugin-syntax-decorators "^6.13.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-comments@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-comments/-/babel-plugin-transform-flow-comments-6.22.0.tgz#8d9491132f2b48abd0656f96c20f3bbd6fc17529" - dependencies: - babel-plugin-syntax-flow "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-object-rest-spread@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-react@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-preset-stage-2@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-plugin-transform-class-properties "^6.24.1" - babel-plugin-transform-decorators "^6.24.1" - babel-preset-stage-3 "^6.24.1" - -babel-preset-stage-3@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-generator-functions "^6.24.1" - babel-plugin-transform-async-to-generator "^6.24.1" - babel-plugin-transform-exponentiation-operator "^6.24.1" - babel-plugin-transform-object-rest-spread "^6.22.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@7.0.0-beta.32, babylon@^7.0.0-beta.31: - version "7.0.0-beta.32" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.32.tgz#e9033cb077f64d6895f4125968b37dc0a8c3bc6e" - -babylon@^6.1.0, babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-arraybuffer@0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= base64-js@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== base64id@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" better-assert@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= dependencies: callsite "1.0.0" -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== -bluebird@^3.3.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" +bluebird@^3.3.0, bluebird@^3.5.5: + version "3.5.5" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" + integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.18.2, body-parser@^1.16.1: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" +body-parser@1.19.0, body-parser@^1.16.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: - bytes "3.0.0" + bytes "3.1.0" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" bonjour@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= dependencies: array-flatten "^2.1.0" deep-equal "^1.0.1" @@ -1143,52 +1416,46 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" - brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" - dependencies: - expand-range "^0.1.0" +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" + fill-range "^7.0.1" brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -1198,24 +1465,28 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: safe-buffer "^5.0.1" browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" evp_bytestokey "^1.0.0" browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" des.js "^1.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" browserify-rsa@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" randombytes "^2.0.1" @@ -1223,6 +1494,7 @@ browserify-rsa@^4.0.0: browserify-sign@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= dependencies: bn.js "^4.1.1" browserify-rsa "^4.0.0" @@ -1235,51 +1507,116 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" -browserslist@^2.1.2: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" +browserslist@^4.6.0, browserslist@^4.6.6: + version "4.6.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" + integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== + dependencies: + caniuse-lite "^1.0.30000984" + electron-to-chromium "^1.3.191" + node-releases "^1.1.25" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" - builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= -bytes@3.0.0, bytes@^3.0.0: +bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -call-matcher@^1.0.0: +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-matcher@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.1.0.tgz#23b2c1bc7a8394c8be28609d77ddbd5786680432" + integrity sha512-IoQLeNwwf9KTNbtSA7aEBb1yfDbdnzwjCetjkC8io5oGeOmK2CBNdg0xr+tadRYKO0p7uQyZzvon0kXlZbvGrw== dependencies: core-js "^2.0.0" deep-equal "^1.0.0" @@ -1289,62 +1626,46 @@ call-matcher@^1.0.0: call-signature@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" + integrity sha1-qEq8glpV70yysCi9dOIFpluaSZY= callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30000792: - version "1.0.30000821" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000821.tgz#0f3223f1e048ed96451c56ca6cf197058c42cb93" +caniuse-lite@^1.0.30000984: + version "1.0.30000989" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" + integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" +chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" chalk@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + integrity sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= dependencies: ansi-styles "^1.1.0" escape-string-regexp "^1.0.0" @@ -1352,262 +1673,350 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - 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" - -chalk@^2.0.0, chalk@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.6: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" -chalk@^2.0.1, chalk@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" +chokidar@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.2.tgz#0d1cd6d04eb2df0327446188cd13736a3367d681" + integrity sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA== + dependencies: + anymatch "^3.0.1" + braces "^3.0.2" + glob-parent "^5.0.0" + is-binary-path "^2.1.0" + is-glob "^4.0.1" + normalize-path "^3.0.0" + readdirp "^3.1.1" + optionalDependencies: + fsevents "^2.0.6" -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" +chownr@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" + integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== -chokidar@^1.4.1, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" + tslib "^1.9.0" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" classnames@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" + version "2.2.6" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: - color-name "^1.1.1" + color-name "1.1.3" -color-name@^1.1.1: +color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= colors@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combine-lists@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" - dependencies: - lodash "^4.5.0" + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -commander@^2.11.0, commander@^2.3.0, commander@~2.12.1: - version "2.12.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.1.tgz#468635c4168d06145b9323356d1da84d14ac4a7a" - -commander@~2.14.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" +commander@^2.20.0, commander@^2.3.0, commander@^2.8.1, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= component-emitter@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== component-inherit@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= -compressible@~2.0.11: - version "2.0.12" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66" +compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== dependencies: - mime-db ">= 1.30.0 < 2" + mime-db ">= 1.40.0 < 2" -compression@^1.5.2: - version "1.7.1" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db" +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: - accepts "~1.3.4" + accepts "~1.3.5" bytes "3.0.0" - compressible "~2.0.11" + compressible "~2.0.16" debug "2.6.9" - on-headers "~1.0.1" - safe-buffer "5.1.1" + on-headers "~1.0.2" + safe-buffer "5.1.2" vary "~1.1.2" concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.0, concat-stream@^1.4.7, concat-stream@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" +concat-stream@1.6.2, concat-stream@^1.4.7, concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: + buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" -connect-history-api-fallback@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== connect@^3.6.0: - version "3.6.5" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.5.tgz#fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da" + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== dependencies: debug "2.6.9" - finalhandler "1.0.6" - parseurl "~1.3.2" + finalhandler "1.1.2" + parseurl "~1.3.3" utils-merge "1.0.1" console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= dependencies: date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" +convert-source-map@^1.1.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.1.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" + integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== + dependencies: + browserslist "^4.6.6" + semver "^6.3.0" -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" +core-js@^2.0.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" + integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== -core-js@^2.0.0, core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" +core-js@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09" + integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== dependencies: bn.js "^4.1.0" elliptic "^6.0.0" create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" - ripemd160 "^2.0.0" + md5.js "^1.3.4" + ripemd160 "^2.0.1" sha.js "^2.4.0" create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -1616,29 +2025,30 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -1652,123 +2062,160 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" +csstype@^2.2.0: + version "2.6.6" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41" + integrity sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg== custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" +date-format@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" + integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= -date-time@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-time/-/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2" - dependencies: - time-zone "^1.0.0" - -debug@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: - ms "0.7.1" + ms "2.0.0" -debug@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" +debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: - ms "0.7.2" + ms "^2.1.1" -debug@2.6.9, debug@^2.2.0, debug@^2.4.1, debug@^2.6.6, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: - ms "2.0.0" + ms "^2.1.1" -debug@^3.0.1, debug@^3.1.0: +debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: +decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-equal@^1.0.0, deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= -deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" + execa "^1.0.0" + ip-regex "^2.1.0" -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" + object-keys "^1.0.12" -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@1.1.1, depd@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -1776,36 +2223,37 @@ des.js@^1.0.0: destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= diff-match-patch@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" - -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + version "1.0.4" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1" + integrity sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg== diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -1814,10 +2262,12 @@ diffie-hellman@^5.0.0: dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= -dns-packet@^1.0.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.2.tgz#a8a26bec7646438963fc86e06f8f8b16d6c8bf7a" +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" @@ -1825,18 +2275,28 @@ dns-packet@^1.0.1: dns-txt@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= dependencies: buffer-indexof "^1.0.0" -doctrine@^2.0.0, doctrine@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.2.tgz#68f96ce8efc56cc42651f1faadb4f175273b0075" +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dom-serialize@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= dependencies: custom-event "~1.0.0" ent "~2.2.0" @@ -1844,34 +2304,47 @@ dom-serialize@^2.2.0: void-elements "^2.0.0" domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" -eastasianwidth@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" + safer-buffer "^2.1.0" ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.30: - version "1.3.41" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.41.tgz#7e33643e00cd85edfd17e04194f6d00e73737235" +electron-to-chromium@^1.3.191: + version "1.3.241" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.241.tgz#859dc49ab7f90773ed698767372d384190f60cb1" + integrity sha512-Gb9E6nWZlbgjDDNe5cAvMJixtn79krNJ70EDpq/M10lkGo7PGtBUe7Y0CYVHsBScRwi6ybCS+YetXAN9ysAHDg== elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + version "6.5.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" + integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -1881,683 +2354,717 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= -empower-core@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.2.tgz#5adef566088e31fba80ba0a36df47d7094169144" +empower-core@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-1.2.0.tgz#ce3fb2484d5187fa29c23fba8344b0b2fdf5601c" + integrity sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ== dependencies: call-signature "0.0.2" core-js "^2.0.0" -empower@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/empower/-/empower-1.2.3.tgz#6f0da73447f4edd838fec5c60313a88ba5cb852b" +empower@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/empower/-/empower-1.3.1.tgz#768979cbbb36d71d8f5edaab663deacb9dab916c" + integrity sha512-uB6/ViBaawOO/uujFADTK3SqdYlxYNn+N4usK9MRKZ4Hbn/1QSy8k2PezxCA2/+JGbF8vd/eOfghZ90oOSDZCA== dependencies: core-js "^2.0.0" - empower-core "^0.6.2" + empower-core "^1.2.0" -encodeurl@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== dependencies: - iconv-lite "~0.4.13" + once "^1.4.0" -engine.io-client@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" +engine.io-client@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" + integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== dependencies: component-emitter "1.2.1" component-inherit "0.0.3" - debug "2.3.3" - engine.io-parser "1.3.2" + debug "~3.1.0" + engine.io-parser "~2.1.1" has-cors "1.1.0" indexof "0.0.1" - parsejson "0.0.3" parseqs "0.0.5" parseuri "0.0.5" - ws "1.1.2" - xmlhttprequest-ssl "1.5.3" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" -engine.io-parser@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== dependencies: after "0.8.2" - arraybuffer.slice "0.0.6" + arraybuffer.slice "~0.0.7" base64-arraybuffer "0.1.5" - blob "0.0.4" - has-binary "0.1.7" - wtf-8 "1.0.0" + blob "0.0.5" + has-binary2 "~1.0.2" -engine.io@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" +engine.io@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" + integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== dependencies: - accepts "1.3.3" + accepts "~1.3.4" base64id "1.0.0" cookie "0.3.1" - debug "2.3.3" - engine.io-parser "1.3.2" - ws "1.1.2" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" +enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" + tapable "^1.0.0" ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= -errno@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: - is-arrayish "^0.2.1" + prr "~1.0.1" -es-abstract@^1.7.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" +es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== dependencies: - es-to-primitive "^1.1.1" + es-to-primitive "^1.2.0" function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" + has "^1.0.3" + is-callable "^1.1.4" is-regex "^1.0.4" + object-keys "^1.0.12" -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== dependencies: - is-callable "^1.1.1" + is-callable "^1.1.4" is-date-object "^1.0.1" - is-symbol "^1.0.1" - -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.37" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.37.tgz#0ee741d148b80069ba27d020393756af257defc3" - dependencies: - es6-iterator "~2.0.1" - es6-symbol "~3.1.1" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" + is-symbol "^1.0.2" es6-promise@^4.0.3: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a" + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== es6-promisify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= dependencies: es6-promise "^4.0.3" -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" +eslint-plugin-react@^7.5.1: + version "7.14.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" + integrity sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA== + dependencies: + array-includes "^3.0.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.1.0" + object.entries "^1.1.0" + object.fromentries "^2.0.0" + object.values "^1.1.0" + prop-types "^15.7.2" + resolve "^1.10.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-plugin-react@^7.5.1: - version "7.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.5.1.tgz#52e56e8d80c810de158859ef07b880d2f56ee30b" - dependencies: - doctrine "^2.0.0" - has "^1.0.1" - jsx-ast-utils "^2.0.0" - prop-types "^15.6.0" - -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint@^4.12.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.12.0.tgz#a7ce78eba8cc8f2443acfbbc870cc31a65135884" +eslint-utils@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" + integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== + dependencies: + eslint-visitor-keys "^1.0.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.2.2.tgz#03298280e7750d81fcd31431f3d333e43d93f24f" + integrity sha512-mf0elOkxHbdyGX1IJEUsNBzCDdyoUgljF3rRlgfyYh0pwGnreLc0jjD6ZuleOibjmnUWZLY2eXwSooeOgGJ2jw== dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.0.1" - doctrine "^2.0.2" - eslint-scope "^3.7.1" - espree "^3.5.2" - esquery "^1.0.0" - estraverse "^4.2.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.2" + eslint-visitor-keys "^1.1.0" + espree "^6.1.1" + esquery "^1.0.1" esutils "^2.0.2" - file-entry-cache "^2.0.0" + file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" + glob-parent "^5.0.0" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" + inquirer "^6.4.1" + is-glob "^4.0.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" + lodash "^4.17.14" + minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "^4.0.1" - text-table "~0.2.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" espower-location-detector@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" + integrity sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU= dependencies: is-url "^1.2.1" path-is-absolute "^1.0.0" source-map "^0.5.0" xtend "^4.0.0" -espree@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca" +espree@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.1.tgz#7f80e5f7257fc47db450022d723e356daeb1e5de" + integrity sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ== dependencies: - acorn "^5.2.1" - acorn-jsx "^3.0.0" + acorn "^7.0.0" + acorn-jsx "^5.0.2" + eslint-visitor-keys "^1.1.0" esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== espurify@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" + version "1.8.1" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.8.1.tgz#5746c6c1ab42d302de10bd1d5bf7f0e8c0515056" + integrity sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg== dependencies: core-js "^2.0.0" -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== dependencies: estraverse "^4.1.0" - object-assign "^4.0.1" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estree-walker@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" - -estree-walker@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" - -estree-walker@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.1.tgz#64fc375053abc6f57d73e9bd2f004644ad3c5854" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" +eventemitter3@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" +events@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== dependencies: - original ">=0.0.5" + original "^1.0.0" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" + cross-spawn "^6.0.0" + get-stream "^4.0.0" is-stream "^1.1.0" npm-run-path "^2.0.0" p-finally "^1.0.0" signal-exit "^3.0.0" strip-eof "^1.0.0" -expand-braces@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" - dependencies: - array-slice "^0.2.3" - array-unique "^0.2.1" - braces "^0.1.2" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" - dependencies: - is-number "^0.1.1" - repeat-string "^0.2.2" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: - fill-range "^2.1.0" + homedir-polyfill "^1.0.1" -express@^4.16.2: - version "4.16.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: - accepts "~1.3.4" + accepts "~1.3.7" array-flatten "1.1.1" - body-parser "1.18.2" - content-disposition "0.5.2" + body-parser "1.19.0" + content-disposition "0.5.3" content-type "~1.0.4" - cookie "0.3.1" + cookie "0.4.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.1" - encodeurl "~1.0.1" + depd "~1.1.2" + encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.1.0" + finalhandler "~1.1.2" fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" - parseurl "~1.3.2" + parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.2" - qs "6.5.1" - range-parser "~1.2.0" - safe-buffer "5.1.1" - send "0.16.1" - serve-static "1.13.1" - setprototypeof "1.1.0" - statuses "~1.3.1" - type-is "~1.6.15" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" -extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -external-editor@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" + is-extendable "^0.1.0" -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: - is-extglob "^1.0.0" + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extract-zip@^1.6.5: - version "1.6.6" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: - concat-stream "1.6.0" + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-zip@^1.6.5, extract-zip@^1.6.6: + version "1.6.7" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" + integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + dependencies: + concat-stream "1.6.2" debug "2.6.9" - mkdirp "0.5.0" + mkdirp "0.5.1" yauzl "2.4.1" -extsprintf@1.3.0, extsprintf@^1.2.0: +extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= faye-websocket@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= dependencies: websocket-driver ">=0.5.1" -faye-websocket@~0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.16: - version "0.8.16" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.9" - fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= dependencies: pend "~1.2.0" +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" + flat-cache "^2.0.1" file-size@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" + integrity sha1-BX1Dw6Ptc12j+Q1gUqs4Dx5tXjs= -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" -finalhandler@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" + to-regex-range "^5.0.1" -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" +finalhandler@1.1.2, finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" + parseurl "~1.3.3" + statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" + make-dir "^2.0.0" + pkg-dir "^3.0.0" -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" + locate-path "^3.0.0" -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" +findup-sync@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== dependencies: - locate-path "^2.0.0" + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== flow-bin@^0.69.0: version "0.69.0" resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.69.0.tgz#053159a684a6051fcbf0b71a2eb19a9679082da6" + integrity sha512-SC5kiOiMk+8o1N2ZQ1mBfi0qBDYM+r6ZFQS7s+zXtyKrkbtCP+6JRTVvO3KXOnv568SK1G+Kg8/LlJwgyR+8Ug== -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" +follow-redirects@^1.0.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" + integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== dependencies: - for-in "^1.0.1" + debug "^3.2.6" -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.5" + combined-stream "^1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: - null-check "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" fs-extra@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" klaw "^1.0.0" -fs-readdir-recursive@^1.0.0: +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" + integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + dependencies: + minipass "^2.2.1" + +fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" +fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" + nan "^2.12.1" + node-pre-gyp "^0.12.0" -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" +fsevents@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" + integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== -function-bind@^1.0.2, function-bind@^1.1.1: +function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -2569,39 +3076,53 @@ gauge@~2.7.3: wide-align "^1.1.0" get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" + is-glob "^3.1.0" + path-dirname "^1.0.0" -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" +glob-parent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" + integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== dependencies: - is-glob "^2.0.0" + is-glob "^4.0.1" -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2610,32 +3131,51 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^10.0.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-10.4.0.tgz#5c477388b128a9e4c5c5d01c7a2aca68c68b2da7" +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" -globals@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.0.1.tgz#12a87bb010e5154396acc535e1e43fc753b0e5e8" +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -2643,212 +3183,221 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -gzip-size@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c" - dependencies: - duplexer "^0.1.1" - pify "^3.0.0" - -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.2.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" +handle-thing@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== dependencies: - ajv "^5.1.0" + ajv "^6.5.5" har-schema "^2.0.0" has-ansi@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + integrity sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= dependencies: ansi-regex "^0.2.0" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-binary@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== dependencies: - isarray "0.0.1" + isarray "2.0.1" has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: - function-bind "^1.0.2" + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: - inherits "^2.0.1" + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" - minimalistic-assert "^1.0.0" + minimalistic-assert "^1.0.1" hasha@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" + integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE= dependencies: is-stream "^1.0.1" pinkie-promise "^2.0.0" -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoek@4.x.x: - version "4.2.0" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + parse-passwd "^1.0.0" hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" obuf "^1.0.0" readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^1.2.0: +html-entities@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= -http-errors@1.6.2, http-errors@~1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: - depd "1.1.1" + depd "~1.1.2" inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" -http-parser-js@>=0.4.0: - version "0.4.9" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1" - -http-proxy-middleware@~0.17.4: - version "0.17.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" - dependencies: - http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@^1.13.0, http-proxy@^1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-middleware@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.13.0, http-proxy@^1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + dependencies: + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -2857,342 +3406,441 @@ http-signature@~1.2.0: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.1.0.tgz#1391bee7fd66aeabc0df2a1fa90f58954f43e443" +https-proxy-agent@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" + integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== dependencies: - agent-base "^4.1.0" - debug "^2.4.1" + agent-base "^4.3.0" + debug "^3.1.0" -iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== -ignore@^3.3.3: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -import-local@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8" +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@2.0.0, import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: - pkg-dir "^2.0.0" + pkg-dir "^3.0.0" resolve-cwd "^2.0.0" imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= -ini@~1.3.0: +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" +inquirer@^6.4.1: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" + ansi-escapes "^3.2.0" + chalk "^2.4.2" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^2.0.4" + external-editor "^3.0.3" figures "^2.0.0" - lodash "^4.3.0" + lodash "^4.17.12" mute-stream "0.0.7" run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" + rxjs "^6.4.0" string-width "^2.1.0" - strip-ansi "^4.0.0" + strip-ansi "^5.1.0" through "^2.3.6" -internal-ip@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== dependencies: - meow "^3.3.0" + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" -interpret@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" +interpret@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== -invariant@^2.2.0, invariant@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== -irregular-plurals@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" +ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" +is-absolute-url@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.1.tgz#e315cbdcbbc3d6789532d591954ac78a0e5049f6" + integrity sha512-c2QjUwuMxLsld90sj3xYzpFYWJtuxkIn1f5ua9RTEYJt/vV2IsM+Py00/6qjV7qExgifUvt7qfyBGBBKm+2iBg== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" +is-binary-path@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: - builtin-modules "^1.0.0" + kind-of "^3.0.2" -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: - is-primitive "^2.0.0" + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" -is-extendable@^0.1.1: +is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" -is-extglob@^2.1.0: +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - -is-number@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: - kind-of "^3.0.2" + is-extglob "^2.1.1" is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== dependencies: - is-path-inside "^1.0.0" + is-path-inside "^2.1.0" -is-path-inside@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== dependencies: - path-is-inside "^1.0.1" + path-is-inside "^1.0.2" -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-reference@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.0.tgz#50e6ef3f64c361e2c53c0416cdc9420037f2685b" - dependencies: - "@types/estree" "0.0.38" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= dependencies: has "^1.0.1" -is-resolvable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" - dependencies: - tryit "^1.0.1" - is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-url@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" +is-wsl@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.0.tgz#94369bbeb2249ef07b831b1b08590e686330ccbb" + integrity sha512-pFTjpv/x5HRj8kbZ/Msxi9VrvtOMRBqaDi3OIcbwPI3OuH+r3lLxVWukLITBaOGJIbA/w2+M1eVmVa4XNQlAmQ== isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= isbinaryfile@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jasmine-core@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" - -jest-diff@^22.4.0: - version "22.4.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" - dependencies: - chalk "^2.0.1" - diff "^3.2.0" - jest-get-type "^22.4.3" - pretty-format "^22.4.3" +jasmine-core@^3.3, jasmine-core@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3" + integrity sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg== -jest-get-type@^22.4.3: - version "22.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.9.1: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -3200,104 +3848,138 @@ js-yaml@^3.9.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-loader@^0.5.4, json-loader@^0.5.7: +json-loader@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@3.3.2, json3@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + dependencies: + minimist "^1.2.0" jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" +jsx-ast-utils@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb" + integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ== dependencies: array-includes "^3.0.3" + object.assign "^4.1.0" -karma-chrome-launcher@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" +karma-chrome-launcher@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz#805a586799a4d05f4e54f72a204979f3f3066738" + integrity sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg== dependencies: - fs-access "^1.0.0" which "^1.2.1" -karma-cli@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" +karma-cli@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-2.0.0.tgz#481548d28661af4cc68f3d8e09708f17d2cba931" + integrity sha512-1Kb28UILg1ZsfqQmeELbPzuEb5C6GZJfVIk0qOr8LNYQuYWmAaqP16WpbpKEjhejDrDYyYOwwJXSZO6u7q5Pvw== dependencies: - resolve "^1.1.6" + resolve "^1.3.3" karma-firefox-launcher@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.0.1.tgz#ce58f47c2013a88156d55a5d61337c099cf5bb51" + version "1.2.0" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.2.0.tgz#64fe03dd10300f9754d48f9ebfbf31f6c94a200c" + integrity sha512-j9Zp8M8+VLq1nI/5xZGfzeaEPtGQ/vk3G+Y8vpmFWLvKLNZ2TDjD6cu2dUu7lDbu1HXNgatsAX4jgCZTkR9qhQ== + dependencies: + is-wsl "^2.1.0" karma-ie-launcher@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz#497986842c490190346cd89f5494ca9830c6d59c" + integrity sha1-SXmGhCxJAZA0bNifVJTKmDDG1Zw= dependencies: lodash "^4.6.1" -karma-jasmine@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.0.tgz#22e4c06bf9a182e5294d1f705e3733811b810acf" +karma-jasmine@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-2.0.1.tgz#26e3e31f2faf272dd80ebb0e1898914cc3a19763" + integrity sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA== + dependencies: + jasmine-core "^3.3" karma-phantomjs-launcher@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2" + integrity sha1-0jyjSAG9qYY60xjju0vUBisTrNI= dependencies: lodash "^4.0.1" phantomjs-prebuilt "^2.1.7" @@ -3305,395 +3987,489 @@ karma-phantomjs-launcher@^1.0.4: karma-phantomjs-shim@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/karma-phantomjs-shim/-/karma-phantomjs-shim-1.5.0.tgz#e8db65883480f0dbd184cc961d39c64511742200" + integrity sha512-t0h1x7btXROaGElv36TLpuoWqTnVZ/f+GJHH/qVerjbX6AENoM5brQoB9ISO3hQ6zO1k9rDSRLrY5ZZb83ANdg== -karma-webpack@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.6.tgz#967918e59750ebe0f40829263435fde7ac81bdb4" +karma-webpack@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz#23219bd95bdda853e3073d3874d34447c77bced0" + integrity sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A== dependencies: - async "~0.9.0" - loader-utils "^0.2.5" - lodash "^3.8.0" - source-map "^0.5.6" - webpack-dev-middleware "^1.12.0" + clone-deep "^4.0.1" + loader-utils "^1.1.0" + neo-async "^2.6.1" + schema-utils "^1.0.0" + source-map "^0.7.3" + webpack-dev-middleware "^3.7.0" -karma@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" +karma@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/karma/-/karma-4.2.0.tgz#27e88b310cde090d016980ff5444e3a239196fca" + integrity sha512-fmCuxN1rwJxTdZfOXK5LjlmS4Ana/OvzNMpkyLL/TLE8hmgSkpVpMYQ7RTVa8TNKRVQDZNl5W1oF5cfKfgIMlA== dependencies: bluebird "^3.3.0" body-parser "^1.16.1" - chokidar "^1.4.1" + braces "^3.0.2" + chokidar "^3.0.0" colors "^1.1.0" - combine-lists "^1.0.0" connect "^3.6.0" - core-js "^2.2.0" + core-js "^3.1.3" di "^0.0.1" dom-serialize "^2.2.0" - expand-braces "^0.1.1" + flatted "^2.0.0" glob "^7.1.1" graceful-fs "^4.1.2" http-proxy "^1.13.0" isbinaryfile "^3.0.0" - lodash "^3.8.0" - log4js "^0.6.31" - mime "^1.3.4" + lodash "^4.17.11" + log4js "^4.0.0" + mime "^2.3.1" minimatch "^3.0.2" optimist "^0.6.1" qjobs "^1.1.4" range-parser "^1.2.0" rimraf "^2.6.0" safe-buffer "^5.0.1" - socket.io "1.7.3" - source-map "^0.5.3" - tmp "0.0.31" - useragent "^2.1.12" + socket.io "2.1.1" + source-map "^0.6.1" + tmp "0.0.33" + useragent "2.3.0" kew@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s= -killable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== -kind-of@^3.0.2: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= optionalDependencies: graceful-fs "^4.1.9" -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: - invert-kv "^1.0.0" + invert-kv "^2.0.0" levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@^0.2.5: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" +loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== dependencies: - big.js "^3.1.3" + big.js "^5.2.2" emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" + json5 "^1.0.1" -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" + p-locate "^3.0.0" + path-exists "^3.0.0" -locate-character@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-2.0.5.tgz#f2d2614d49820ecb3c92d80d193b8db755f74c0f" +lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.6.1: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" +log4js@^4.0.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" + integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash@^3.8.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + date-format "^2.0.0" + debug "^4.1.1" + flatted "^2.0.0" + rfdc "^1.1.4" + streamroller "^1.0.6" -lodash@^4.0.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" +loglevel@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" + integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== -log4js@^0.6.31: - version "0.6.38" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: - readable-stream "~1.0.2" - semver "~4.3.3" - -loglevel@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.0.tgz#ae0caa561111498c5ba13723d6fb631d24003934" + js-tokens "^3.0.0 || ^4.0.0" -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" +lru-cache@4.1.x, lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: - js-tokens "^3.0.0" + yallist "^3.0.2" -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" + pify "^4.0.1" + semver "^5.6.0" -lru-cache@2.2.x: - version "2.2.4" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== -lru-cache@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" + p-defer "^1.0.0" -magic-string@^0.22.4: - version "0.22.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" - dependencies: - vlq "^0.2.2" +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: - pify "^3.0.0" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + object-visit "^1.0.0" md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== dependencies: - mimic-fn "^1.0.0" + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" -memory-fs@^0.4.0, memory-fs@~0.4.1: +memory-fs@^0.4.0, memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.3.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5, micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.30.0 < 2": - version "1.31.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.31.0.tgz#a49cd8f3ebf3ed1a482b60561d9105ad40ca74cb" +mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== -mime-db@~1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" - -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: - version "2.1.17" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== dependencies: - mime-db "~1.30.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + mime-db "1.40.0" -mime@^1.2.11, mime@^1.3.4, mime@^1.5.0: +mime@1.6.0, mime@^1.2.11: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3, mime@^2.3.1, mime@^2.4.2: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.3, minimist@^1.2.0: +minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -mkdirp@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" +minipass@^2.2.1, minipass@^2.3.5: + version "2.4.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.4.0.tgz#38f0af94f42fb6f34d3d7d82a90e2c99cd3ff485" + integrity sha512-6PmOuSP4NnZXzs2z6rbwzLJu/c5gdzYg1mRI/WIYdx45iiX7T+a4esOzavD6V/KmBzAaopFSTZPZcUx73bqKWA== dependencies: - minimist "0.0.8" + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" -mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: +mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= multicast-dns@^6.0.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.1.tgz#c5035defa9219d30640558a49298067352098060" + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== dependencies: - dns-packet "^1.0.1" - thunky "^0.1.0" + dns-packet "^1.3.1" + thunky "^1.0.2" mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -nan@^2.3.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" -node-forge@0.6.33: - version "0.6.33" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-forge@0.7.5: + version "0.7.5" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" + integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -3702,10 +4478,10 @@ node-libs-browser@^2.0.0: constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" - events "^1.0.0" + events "^3.0.0" https-browserify "^1.0.0" os-browserify "^0.3.0" - path-browserify "0.0.0" + path-browserify "0.0.1" process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" @@ -3716,136 +4492,212 @@ node-libs-browser@^2.0.0: timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" + util "^0.11.0" + vm-browserify "^1.0.1" -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== dependencies: detect-libc "^1.0.2" - hawk "3.1.3" mkdirp "^0.5.1" + needle "^2.2.1" nopt "^4.0.1" + npm-packlist "^1.1.6" npmlog "^4.0.2" - rc "^1.1.7" - request "2.81.0" + rc "^1.2.7" rimraf "^2.6.1" semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" + tar "^4" + +node-releases@^1.1.25: + version "1.1.28" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.28.tgz#503c3c70d0e4732b84e7aaa2925fbdde10482d4a" + integrity sha512-AQw4emh6iSXnCpDiFe0phYcThiccmkNWMZnFZ+lDJjAP8J0m2fVd59duvUUyuTirQOhIAajTFkzG6FHCLBO59g== + dependencies: + semver "^5.3.0" nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1: +normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-packlist@^1.1.6: + version "1.4.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" + integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" gauge "~2.7.3" set-blocking "~2.0.0" -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -oauth-sign@~0.8.1, oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= -object-keys@^1.0.0, object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" -obuf@^1.0.0, obuf@^1.1.1: +object-keys@^1.0.0, object-keys@^1.0.11, object-keys@^1.0.12: version "1.1.1" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.entries@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" + integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +object.fromentries@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" + integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== + dependencies: + define-properties "^1.1.2" + es-abstract "^1.11.0" + function-bind "^1.1.1" + has "^1.0.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" -on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.3: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: mimic-fn "^1.0.0" -open@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" - -opn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== dependencies: is-wsl "^1.1.0" optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= dependencies: minimist "~0.0.1" wordwrap "~0.0.2" @@ -3853,6 +4705,7 @@ optimist@^0.6.1: optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" @@ -3861,185 +4714,211 @@ optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - -original@>=0.0.5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== dependencies: - url-parse "1.0.x" + url-parse "^1.4.3" os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" +os-locale@^3.0.0, os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" +output-file-sync@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.1.tgz#f53118282f5f553c2799541792b723a4c71430c0" + integrity sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ== dependencies: - graceful-fs "^4.1.4" + graceful-fs "^4.1.11" + is-plain-obj "^1.1.0" mkdirp "^0.5.1" - object-assign "^4.1.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" +p-limit@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== dependencies: - p-limit "^1.1.0" + p-try "^2.0.0" -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + version "5.1.4" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse-ms@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" - -parsejson@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" - dependencies: - better-assert "~1.0.0" +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= parseqs@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= dependencies: better-assert "~1.0.0" parseuri@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= dependencies: better-assert "~1.0.0" -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1, path-is-inside@^1.0.2: +path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -4050,18 +4929,17 @@ pbkdf2@^3.0.3: pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: version "2.1.16" resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef" + integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8= dependencies: es6-promise "^4.0.3" extract-zip "^1.6.5" @@ -4073,75 +4951,85 @@ phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: request-progress "^2.0.1" which "^1.2.10" +picomatch@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -plur@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: - irregular-plurals "^1.0.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + find-up "^3.0.0" -portfinder@^1.0.9: - version "1.0.13" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" +portfinder@^1.0.21: + version "1.0.23" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.23.tgz#894db4bcc5daf02b6614517ce89cd21a38226b82" + integrity sha512-B729mL/uLklxtxuiJKfQ84WPxNw5a7Yhx3geQZdcA4GjNjZSTSSMMWyoennMVnTWSmAR0lMdzWYN0JLnHrg1KQ== dependencies: async "^1.5.2" debug "^2.2.0" mkdirp "0.5.x" +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + power-assert-context-formatter@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz#edba352d3ed8a603114d667265acce60d689ccdf" + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz#8fbe72692288ec5a7203cdf215c8b838a6061d2a" + integrity sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg== dependencies: core-js "^2.0.0" - power-assert-context-traversal "^1.1.1" + power-assert-context-traversal "^1.2.0" power-assert-context-reducer-ast@^1.0.7: - version "1.1.2" - resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.2.tgz#484a99e26f4973ff8832e5c5cc756702e6094174" + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz#c7ca1c9e39a6fb717f7ac5fe9e76e192bf525df3" + integrity sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw== dependencies: - acorn "^4.0.0" + acorn "^5.0.0" acorn-es7-plugin "^1.0.12" core-js "^2.0.0" espurify "^1.6.0" estraverse "^4.2.0" -power-assert-context-traversal@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz#88cabca0d13b6359f07d3d3e8afa699264577ed9" +power-assert-context-traversal@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz#f6e71454baf640de5c1c9c270349f5c9ab0b2e94" + integrity sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ== dependencies: core-js "^2.0.0" estraverse "^4.1.0" -power-assert-formatter@^1.3.1: +power-assert-formatter@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a" + integrity sha1-XcEl7VCj37HdomwZNH879Y7CiEo= dependencies: core-js "^2.0.0" power-assert-context-formatter "^1.0.7" @@ -4152,19 +5040,22 @@ power-assert-formatter@^1.3.1: power-assert-renderer-file "^1.0.7" power-assert-renderer-assertion@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz#cbfc0e77e0086a8f96af3f1d8e67b9ee7e28ce98" + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz#3db6ffcda106b37bc1e06432ad0d748a682b147a" + integrity sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg== dependencies: power-assert-renderer-base "^1.1.1" - power-assert-util-string-width "^1.1.1" + power-assert-util-string-width "^1.2.0" power-assert-renderer-base@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb" + integrity sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s= power-assert-renderer-comparison@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.1.1.tgz#d7439d97d85156be4e30a00f2fb5a72514ce3c08" + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz#e4f88113225a69be8aa586ead05aef99462c0495" + integrity sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g== dependencies: core-js "^2.0.0" diff-match-patch "^1.0.0" @@ -4173,39 +5064,44 @@ power-assert-renderer-comparison@^1.0.7: type-name "^2.0.1" power-assert-renderer-diagram@^1.0.7: - version "1.1.2" - resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.2.tgz#655f8f711935a9b6d541b86327654717c637a986" + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz#37f66e8542e5677c5b58e6d72b01c0d9a30e2219" + integrity sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg== dependencies: core-js "^2.0.0" power-assert-renderer-base "^1.1.1" - power-assert-util-string-width "^1.1.1" + power-assert-util-string-width "^1.2.0" stringifier "^1.3.0" power-assert-renderer-file@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-file/-/power-assert-renderer-file-1.1.1.tgz#a37e2bbd178ccacd04e78dbb79c92fe34933c5e7" + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz#3f4bebd9e1455d75cf2ac541e7bb515a87d4ce4b" + integrity sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg== dependencies: power-assert-renderer-base "^1.1.1" -power-assert-util-string-width@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz#be659eb7937fdd2e6c9a77268daaf64bd5b7c592" +power-assert-util-string-width@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz#6e06d5e3581bb876c5d377c53109fffa95bd91a0" + integrity sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A== dependencies: - eastasianwidth "^0.1.1" + eastasianwidth "^0.2.0" power-assert@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.4.4.tgz#9295ea7437196f5a601fde420f042631186d7517" + version "1.6.1" + resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.6.1.tgz#b28cbc02ae808afd1431d0cd5093a39ac5a5b1fe" + integrity sha512-VWkkZV6Y+W8qLX/PtJu2Ur2jDPIs0a5vbP0TpKeybNcIXmT4vcKoVkyTp5lnQvTpY/DxacAZ4RZisHRHLJcAZQ== dependencies: define-properties "^1.1.2" - empower "^1.2.3" - power-assert-formatter "^1.3.1" + empower "^1.3.1" + power-assert-formatter "^1.4.1" universal-deep-strict-equal "^1.2.1" xtend "^4.0.0" pre-commit@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" + integrity sha1-287g7p3nI15X95xW186UZBpp7sY= dependencies: cross-spawn "^5.0.1" spawn-sync "^1.0.15" @@ -4214,614 +5110,614 @@ pre-commit@^1.2.2: prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -pretty-format@^22.4.3: - version "22.4.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" - -pretty-ms@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-3.1.0.tgz#e9cac9c76bf6ee52fe942dd9c6c4213153b12881" - dependencies: - parse-ms "^1.0.0" - plur "^2.1.2" - -private@^0.1.6, private@^0.1.7: +private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" +progress@^2.0.0, progress@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - dependencies: - asap "~2.0.3" +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -prop-types@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" +prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" + loose-envify "^1.4.0" object-assign "^4.1.1" + react-is "^16.8.1" -proxy-addr@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== dependencies: forwarded "~0.1.2" - ipaddr.js "1.5.2" + ipaddr.js "1.9.0" proxy-from-env@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24: + version "1.3.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" + integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" create-hash "^1.1.0" parse-asn1 "^5.0.0" randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -puppeteer@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-0.13.0.tgz#2e6956205f2c640964c2107f620ae1eef8bde8fd" - dependencies: - debug "^2.6.8" - extract-zip "^1.6.5" - https-proxy-agent "^2.1.0" - mime "^1.3.4" - progress "^2.0.0" +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +puppeteer@^1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.19.0.tgz#e3b7b448c2c97933517078d7a2c53687361bebea" + integrity sha512-2S6E6ygpoqcECaagDbBopoSOPDv0pAZvTbnBgUY+6hq0/XDFDOLEMNlHF/SKJlzcaZ9ckiKjKDuueWI3FN/WXw== + dependencies: + debug "^4.1.0" + extract-zip "^1.6.6" + https-proxy-agent "^2.2.1" + mime "^2.0.3" + progress "^2.0.1" proxy-from-env "^1.0.0" rimraf "^2.6.1" - ws "^3.0.0" + ws "^6.1.0" qjobs@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.5.1, qs@~6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystringify@0.0.x: - version "0.0.4" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" - -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" +range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: - bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.1.7: - version "1.2.2" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: - deep-extend "~0.4.0" + deep-extend "^0.6.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^16.1.1: - version "16.1.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.1.1.tgz#b2e331b6d752faf1a2d31399969399a41d8d45f8" +react-dom@^16.3: + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" + integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== dependencies: - fbjs "^0.8.16" loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + scheduler "^0.15.0" react-frame-component@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-2.0.0.tgz#a39e1fec9b0da6e1295beccf1b659b0f15e6bb98" + version "2.0.2" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-2.0.2.tgz#e602a980e1d78f91f471531225b61cfdbf68e614" + integrity sha1-5gKpgOHXj5H0cVMSJbYc/b9o5hQ= + +react-is@^16.8.1, react-is@^16.9.0: + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" + integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== react-test-renderer@^16.1.1: - version "16.1.1" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.1.1.tgz#a05184688d564be799f212449262525d1e350537" + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9" + integrity sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ== dependencies: - fbjs "^0.8.16" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" + react-is "^16.9.0" + scheduler "^0.15.0" -react@^16.1.1: - version "16.1.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.1.1.tgz#d5c4ef795507e3012282dd51261ff9c0e824fe1f" +react@^16.3: + version "16.9.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" + integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== dependencies: - fbjs "^0.8.16" loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.0" + prop-types "^15.6.2" -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9, readable-stream@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" - process-nextick-args "~1.0.6" + process-nextick-args "~2.0.0" safe-buffer "~5.1.1" - string_decoder "~1.0.3" + string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@~1.0.2: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" +readable-stream@^3.0.6: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" + graceful-fs "^4.1.11" + micromatch "^3.1.10" readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" +readdirp@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.2.tgz#fa85d2d14d4289920e4671dead96431add2ee78a" + integrity sha512-8rhl0xs2cxfVsqzreYCvs8EwBfn/DhVdqtoLmw19uI3SC5avYX9teCurlErfpPXGmYtMHReGaP2RsLnFvz/lnw== dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + picomatch "^2.0.4" -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" +regenerate-unicode-properties@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + dependencies: + regenerate "^1.4.0" -regenerator-runtime@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" private "^0.1.6" -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: - is-equal-shallow "^0.1.3" + extend-shallow "^3.0.2" + safe-regex "^1.1.0" -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" +regexp-tree@^0.1.6: + version "0.1.12" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.12.tgz#28eaaa6e66eeb3527c15108a3ff740d9e574e420" + integrity sha512-TsXZ8+cv2uxMEkLfgwO0E068gsNMLfuYwMMhiUxf0Kw2Vcgzq93vgl6wIlIYuPmfMqMjfQ9zAporiozqCnwLuQ== -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpu-core@^4.5.4: + version "4.5.5" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" + integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.1.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== dependencies: jsesc "~0.5.0" remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.2: +repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= request-progress@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" + integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg= dependencies: throttleit "^1.0.0" -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - 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" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - request@^2.81.0: - version "2.83.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== dependencies: aws-sign2 "~0.7.0" - aws4 "^1.6.0" + aws4 "^1.8.0" caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" + combined-stream "~1.0.6" + extend "~3.0.2" forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" + form-data "~2.3.2" + har-validator "~5.1.0" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" + mime-types "~2.1.19" + oauth-sign "~0.9.0" performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" tunnel-agent "^0.6.0" - uuid "^3.1.0" + uuid "^3.3.2" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: +requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" -resolve-from@^1.0.0: +resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= -resolve@^1.1.6: - version "1.5.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" - dependencies: - path-parse "^1.0.5" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.10.1, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.3.3: + version "1.12.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: - path-parse "^1.0.5" + path-parse "^1.0.6" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: onetime "^2.0.0" signal-exit "^3.0.2" -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rfdc@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" + integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: - align-text "^0.1.1" + glob "^7.1.3" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.0, rimraf@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" +rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: - glob "^7.0.5" + glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: - hash-base "^2.0.0" + hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-babel@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-3.0.3.tgz#63adedc863130327512a4a9006efc2241c5b7c15" +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= dependencies: - rollup-pluginutils "^1.5.0" + is-promise "^2.1.0" -rollup-plugin-commonjs@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.0.tgz#468341aab32499123ee9a04b22f51d9bf26fdd94" +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: - estree-walker "^0.5.1" - magic-string "^0.22.4" - resolve "^1.5.0" - rollup-pluginutils "^2.0.1" + aproba "^1.1.1" -rollup-plugin-node-resolve@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713" +rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== dependencies: - builtin-modules "^2.0.0" - is-module "^1.0.0" - resolve "^1.1.6" + tslib "^1.9.0" -rollup-plugin-replace@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.0.0.tgz#19074089c8ed57184b8cc64e967a03d095119277" - dependencies: - magic-string "^0.22.4" - minimatch "^3.0.2" - rollup-pluginutils "^2.0.1" +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -rollup-plugin-size-snapshot@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-size-snapshot/-/rollup-plugin-size-snapshot-0.2.1.tgz#f4d95ec11b6b6a291eeb93c87023ed4955942f9c" - dependencies: - bytes "^3.0.0" - chalk "^2.3.2" - fast-deep-equal "^1.1.0" - gzip-size "^4.1.0" - jest-diff "^22.4.0" - uglify-es "^3.3.9" +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== -rollup-plugin-uglify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-3.0.0.tgz#a34eca24617709c6bf1778e9653baafa06099b86" +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: - uglify-es "^3.3.7" + ret "~0.1.10" -rollup-pluginutils@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" - dependencies: - estree-walker "^0.2.1" - minimatch "^3.0.2" +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -rollup-pluginutils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" - dependencies: - estree-walker "^0.3.0" - micromatch "^2.3.11" - -rollup@^0.57.1: - version "0.57.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.57.1.tgz#0bb28be6151d253f67cf4a00fea48fb823c74027" - dependencies: - "@types/acorn" "^4.0.3" - acorn "^5.5.3" - acorn-dynamic-import "^3.0.0" - date-time "^2.1.0" - is-reference "^1.1.0" - locate-character "^2.0.5" - pretty-ms "^3.1.0" - require-relative "^0.8.7" - rollup-pluginutils "^2.0.1" - signal-exit "^3.0.2" - sourcemap-codec "^1.4.1" +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" +scheduler@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" + integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg== dependencies: - is-promise "^2.1.0" + loose-envify "^1.1.0" + object-assign "^4.1.1" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^1.9.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.1.tgz#bf8cb7b83256c4551e31347c6311778db99eec52" +selfsigned@^1.10.4: + version "1.10.4" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" + integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== dependencies: - node-forge "0.6.33" + node-forge "0.7.5" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" +semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@~4.3.3: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" +semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -send@0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" - depd "~1.1.1" + depd "~1.1.2" destroy "~1.0.4" - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.1" + range-parser "~1.2.1" + statuses "~1.5.0" -serve-index@^1.7.2: +serialize-javascript@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.8.0.tgz#9515fc687232e2321aea1ca7a529476eb34bb480" + integrity sha512-3tHgtF4OzDmeKYj6V9nSyceRS0UJ3C7VqyD2Yj28vC/z2j6jG5FmFGahOKMD9CrglxTm3tETr87jEypaYV8DUg== + +serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" batch "0.6.1" @@ -4831,930 +5727,1199 @@ serve-index@^1.7.2: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.1" + parseurl "~1.3.3" + send "0.17.1" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.9" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: - hoek "2.x.x" + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: - hoek "4.x.x" + kind-of "^3.2.0" -socket.io-adapter@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: - debug "2.3.3" - socket.io-parser "2.3.1" + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" -socket.io-client@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= + +socket.io-client@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" + integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== dependencies: backo2 "1.0.2" + base64-arraybuffer "0.1.5" component-bind "1.0.0" component-emitter "1.2.1" - debug "2.3.3" - engine.io-client "1.8.3" - has-binary "0.1.7" + debug "~3.1.0" + engine.io-client "~3.2.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" indexof "0.0.1" object-component "0.0.3" + parseqs "0.0.5" parseuri "0.0.5" - socket.io-parser "2.3.1" + socket.io-parser "~3.2.0" to-array "0.1.4" -socket.io-parser@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" +socket.io-parser@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" + integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== dependencies: - component-emitter "1.1.2" - debug "2.2.0" - isarray "0.0.1" - json3 "3.3.2" + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" -socket.io@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" +socket.io@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" + integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== dependencies: - debug "2.3.3" - engine.io "1.8.3" - has-binary "0.1.7" - object-assign "4.1.0" - socket.io-adapter "0.5.0" - socket.io-client "1.7.3" - socket.io-parser "2.3.1" + debug "~3.1.0" + engine.io "~3.2.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.1.1" + socket.io-parser "~3.2.0" -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" +sockjs-client@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" + integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" json3 "^3.3.2" - url-parse "^1.1.8" + url-parse "^1.4.3" -sockjs@0.3.18: - version "0.3.18" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== dependencies: faye-websocket "^0.10.0" - uuid "^2.0.2" + uuid "^3.0.1" source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== dependencies: - source-map "^0.5.6" + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: +source-map-support@~0.5.12: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sourcemap-codec@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz#c8fd92d91889e902a07aee392bdd2c5863958ba2" +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + integrity sha1-sAeZVX63+wyDdsKdROih6mfldHY= dependencies: concat-stream "^1.4.7" os-shim "^0.1.2" -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: - debug "^2.6.8" - detect-node "^2.0.3" + debug "^4.1.0" + detect-node "^2.0.4" hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" -spdy@^3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" +spdy@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" + integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" + debug "^4.1.0" + handle-thing "^2.0.0" http-deceiver "^1.2.7" - safe-buffer "^5.0.1" select-hose "^2.0.0" - spdy-transport "^2.0.18" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" ecc-jsbn "~0.1.1" + getpass "^0.1.1" jsbn "~0.1.0" + safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + static-server@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/static-server/-/static-server-3.0.0.tgz#50c5adb318bcdf6547f4b36c272e8c53df829030" + integrity sha512-eWUwBKKfugQcY80uMSXnu2enueHGZQAXylJeTdVvny5DtMfcvrQL+MjAf/w2BNc0pkI8NoGHINNuDCbDE1eg5Q== dependencies: chalk "^0.5.1" commander "^2.3.0" file-size "0.0.5" mime "^1.2.11" -"statuses@>= 1.3.1 < 2": - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" readable-stream "^2.0.2" +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + stream-http@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" - readable-stream "^2.2.6" + readable-stream "^2.3.6" to-arraybuffer "^1.0.0" xtend "^4.0.0" -string-width@^1.0.1, string-width@^1.0.2: +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +streamroller@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" + integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== + dependencies: + async "^2.6.2" + date-format "^2.0.0" + debug "^3.2.6" + fs-extra "^7.0.1" + lodash "^4.17.14" + +string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.0.0, string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: - safe-buffer "~5.1.0" + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" stringifier@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" + version "1.4.0" + resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.4.0.tgz#d704581567f4526265d00ed8ecb354a02c3fec28" + integrity sha512-cNsMOqqrcbLcHTXEVmkw9y0fwDwkdgtZwlfyolzpQDoAE1xdNGhQhxBUfiDvvZIKl1hnUEgMv66nHwtMz3OjPw== dependencies: core-js "^2.0.0" traverse "^0.6.6" type-name "^2.0.1" -stringstream@~0.0.4, stringstream@~0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - strip-ansi@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + integrity sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= dependencies: ansi-regex "^0.2.1" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + ansi-regex "^4.1.0" strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +supports-color@6.1.0, supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" supports-color@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^4.0.0, supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" + integrity sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= supports-color@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -table@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" -tar-pack@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^4: + version "4.4.10" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" + integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.5" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +terser-webpack-plugin@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" + integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^1.7.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.2.1.tgz#1052cfe17576c66e7bc70fcc7119f22b155bdac1" + integrity sha512-cGbc5utAcX4a9+2GGVX4DsenG6v0x3glnDi5hx8816X1McEAwPlPgRtXPJzSBsbpILxZ8MQMT0KvArLuE0HP5A== dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" -text-table@~0.2.0: +text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -thunky@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" - -time-stamp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" - -time-zone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" +thunky@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" + integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== timers-browserify@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== dependencies: setimmediate "^1.0.4" -tmp@0.0.31: - version "0.0.31" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" - dependencies: - os-tmpdir "~1.0.1" - -tmp@0.0.x, tmp@^0.0.33: +tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -tough-cookie@~2.3.0, tough-cookie@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== dependencies: + psl "^1.1.24" punycode "^1.4.1" traverse@^0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -tryit@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" +tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" -type-is@~1.6.15: - version "1.6.15" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" - mime-types "~2.1.15" + mime-types "~2.1.24" type-name@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" + integrity sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q= typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.1.tgz#ef39cdea27abac0b500242d6726ab90e0c846631" - -ua-parser-js@^0.7.9: - version "0.7.17" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" - -uglify-es@^3.3.7, uglify-es@^3.3.9: - version "3.3.10" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.10.tgz#8b0b7992cebe20edc26de1bf325cef797b8f3fa5" - dependencies: - commander "~2.14.1" - source-map "~0.6.1" - -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" +typescript@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" + integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== uglify-js@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.2.0.tgz#cb411ee4ca0e0cadbfe3a4e1a1da97e6fa0d19c1" + version "3.6.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" + integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== dependencies: - commander "~2.12.1" + commander "~2.20.0" source-map "~0.6.1" -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== -ultron@~1.1.0: +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" universal-deep-strict-equal@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" + integrity sha1-DaSsL3PP95JMgfpN4BjKViyisKc= dependencies: array-filter "^1.0.0" indexof "0.0.1" object-keys "^1.0.0" +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -url-parse@1.0.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: - querystringify "0.0.x" - requires-port "1.0.x" + has-value "^0.3.1" + isobject "^3.0.0" -url-parse@^1.1.8: - version "1.2.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" +upath@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: - querystringify "~1.0.0" - requires-port "~1.0.0" + querystringify "^2.1.1" + requires-port "^1.0.0" url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" querystring "0.2.0" -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -useragent@^2.1.12: - version "2.2.1" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" +useragent@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== dependencies: - lru-cache "2.2.x" + lru-cache "4.1.x" tmp "0.0.x" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util@0.10.3, util@^0.10.3: +util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -uuid@^3.0.0, uuid@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" +uuid@^3.0.1, uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" +v8-compile-cache@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" + integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" -vlq@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" +watchpack@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== dependencies: - async "^2.1.2" - chokidar "^1.7.0" + chokidar "^2.0.2" graceful-fs "^4.1.2" + neo-async "^2.5.0" -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" -webpack-dev-middleware@^1.11.0, webpack-dev-middleware@^1.12.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" +webpack-cli@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.7.tgz#77c8580dd8e92f69d635e0238eaf9d9c15759a91" + integrity sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ== + dependencies: + chalk "2.4.2" + cross-spawn "6.0.5" + enhanced-resolve "4.1.0" + findup-sync "3.0.0" + global-modules "2.0.0" + import-local "2.0.0" + interpret "1.2.0" + loader-utils "1.2.3" + supports-color "6.1.0" + v8-compile-cache "2.0.3" + yargs "13.2.4" + +webpack-dev-middleware@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" + integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== dependencies: - memory-fs "~0.4.1" - mime "^1.5.0" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - time-stamp "^2.0.0" + memory-fs "^0.4.1" + mime "^2.4.2" + range-parser "^1.2.1" + webpack-log "^2.0.0" -webpack-dev-server@^2.9.5: - version "2.9.5" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.5.tgz#79336fba0087a66ae491f4869f6545775b18daa8" +webpack-dev-server@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.8.0.tgz#06cc4fc2f440428508d0e9770da1fef10e5ef28d" + integrity sha512-Hs8K9yI6pyMvGkaPTeTonhD6JXVsigXDApYk9JLW4M7viVBspQvb1WdAcWxqtmttxNW4zf2UFLsLNe0y87pIGQ== dependencies: ansi-html "0.0.7" - array-includes "^3.0.3" bonjour "^3.5.0" - chokidar "^1.6.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - debug "^3.1.0" - del "^3.0.0" - express "^4.16.2" - html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" - import-local "^0.1.1" - internal-ip "1.2.0" + chokidar "^2.1.6" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.2.1" + http-proxy-middleware "^0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" ip "^1.1.5" - killable "^1.0.0" - loglevel "^1.4.1" - opn "^5.1.0" - portfinder "^1.0.9" - selfsigned "^1.9.1" - serve-index "^1.7.2" - sockjs "0.3.18" - sockjs-client "1.1.4" - spdy "^3.4.1" + is-absolute-url "^3.0.0" + killable "^1.0.1" + loglevel "^1.6.3" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.21" + schema-utils "^1.0.0" + selfsigned "^1.10.4" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.3.0" + spdy "^4.0.1" strip-ansi "^3.0.1" - supports-color "^4.2.1" - webpack-dev-middleware "^1.11.0" - yargs "^6.6.0" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.0" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "12.0.5" -webpack-sources@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^5.1.5" - ajv-keywords "^2.0.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" +webpack@^4.39.2: + version "4.39.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.2.tgz#c9aa5c1776d7c309d1b3911764f0288c8c2816aa" + integrity sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.1" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.1" + watchpack "^1.6.0" + webpack-sources "^1.4.1" websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== dependencies: - http-parser-js ">=0.4.0" + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - -whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@1.2.x: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + integrity sha1-mofEN48D6CfOyvGs31bHNsAcFOU= dependencies: isexe "^2.0.0" -which@^1.2.1, which@^1.2.10, which@^1.2.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" +which@^1.2.1, which@^1.2.10, which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: - string-width "^1.0.2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + string-width "^1.0.2 || 2" wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" -ws@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" +ws@^6.1.0, ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: - options ">=0.0.5" - ultron "1.0.x" + async-limiter "~1.0.0" -ws@^3.0.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.2.tgz#96c1d08b3fefda1d5c1e33700d3bfaa9be2d5608" +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== dependencies: async-limiter "~1.0.0" safe-buffer "~5.1.0" ultron "~1.1.0" -wtf-8@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" - -xmlhttprequest-ssl@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= -xtend@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== dependencies: - camelcase "^3.0.0" + camelcase "^5.0.0" + decamelize "^1.2.0" -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" +yargs-parser@^13.1.0: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== dependencies: - camelcase "^4.1.0" + camelcase "^5.0.0" + decamelize "^1.2.0" -yargs@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" +yargs@12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" + os-locale "^3.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@13.2.4: + version "13.2.4" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" require-directory "^2.1.1" - require-main-filename "^1.0.1" + require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^2.0.0" + string-width "^3.0.0" which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" + y18n "^4.0.0" + yargs-parser "^13.1.0" yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= dependencies: fd-slicer "~1.0.1" yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From 4baf19a39ec6d42165c5767ca11fd54e2b243c1a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 26 Aug 2019 13:29:35 -0500 Subject: [PATCH 318/412] chore(pkg): remove old build artifacts --- .size-snapshot.json | 12 - dist/react-draggable.js | 2214 ------------------------------- dist/react-draggable.js.map | 1 - dist/react-draggable.min.js | 2 - dist/react-draggable.min.js.map | 1 - 5 files changed, 2230 deletions(-) delete mode 100644 .size-snapshot.json delete mode 100644 dist/react-draggable.js delete mode 100644 dist/react-draggable.js.map delete mode 100644 dist/react-draggable.min.js delete mode 100644 dist/react-draggable.min.js.map diff --git a/.size-snapshot.json b/.size-snapshot.json deleted file mode 100644 index 0464965c..00000000 --- a/.size-snapshot.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dist/react-draggable.js": { - "bundled": 75658, - "minified": 22849, - "gzipped": 7695 - }, - "dist/react-draggable.min.js": { - "bundled": 51843, - "minified": 15835, - "gzipped": 5627 - } -} diff --git a/dist/react-draggable.js b/dist/react-draggable.js deleted file mode 100644 index 86943320..00000000 --- a/dist/react-draggable.js +++ /dev/null @@ -1,2214 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react-dom'), require('react')) : - typeof define === 'function' && define.amd ? define(['react-dom', 'react'], factory) : - (global.ReactDraggable = factory(global.ReactDOM,global.React)); -}(this, (function (ReactDOM,React) { 'use strict'; - - ReactDOM = ReactDOM && ReactDOM.hasOwnProperty('default') ? ReactDOM['default'] : ReactDOM; - React = React && React.hasOwnProperty('default') ? React['default'] : React; - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - */ - - function makeEmptyFunction(arg) { - return function () { - return arg; - }; - } - - /** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ - var emptyFunction = function emptyFunction() {}; - - emptyFunction.thatReturns = makeEmptyFunction; - emptyFunction.thatReturnsFalse = makeEmptyFunction(false); - emptyFunction.thatReturnsTrue = makeEmptyFunction(true); - emptyFunction.thatReturnsNull = makeEmptyFunction(null); - emptyFunction.thatReturnsThis = function () { - return this; - }; - emptyFunction.thatReturnsArgument = function (arg) { - return arg; - }; - - var emptyFunction_1 = emptyFunction; - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - - /** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - - var validateFormat = function validateFormat(format) {}; - - { - validateFormat = function validateFormat(format) { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - }; - } - - function invariant(condition, format, a, b, c, d, e, f) { - validateFormat(format); - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } - } - - var invariant_1 = invariant; - - /** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var warning = emptyFunction_1; - - { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; - } - - var warning_1 = warning; - - /* - object-assign - (c) Sindre Sorhus - @license MIT - */ - /* eslint-disable no-unused-vars */ - var getOwnPropertySymbols = Object.getOwnPropertySymbols; - var hasOwnProperty = Object.prototype.hasOwnProperty; - var propIsEnumerable = Object.prototype.propertyIsEnumerable; - - function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); - } - - function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } - } - - var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; - }; - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - - var ReactPropTypesSecret_1 = ReactPropTypesSecret; - - { - var invariant$1 = invariant_1; - var warning$1 = warning_1; - var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; - var loggedTypeFailures = {}; - } - - /** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ - function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - invariant$1(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]); - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); - } catch (ex) { - error = ex; - } - warning$1(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - warning$1(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); - } - } - } - } - } - - var checkPropTypes_1 = checkPropTypes; - - var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret_1) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - invariant_1( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - } else if ("development" !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - warning_1( - false, - 'You are manually calling a React.PropTypes validation ' + - 'function for the `%s` prop on `%s`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', - propFullName, - componentName - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction_1.thatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - warning_1(false, 'Invalid argument supplied to oneOf, expected an instance of array.'); - return emptyFunction_1.thatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - warning_1(false, 'Invalid argument supplied to oneOfType, expected an instance of array.'); - return emptyFunction_1.thatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - warning_1( - false, - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received %s at index %s.', - getPostfixForTypeWarning(checker), - i - ); - return emptyFunction_1.thatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from - // props. - var allKeys = objectAssign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes_1; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; - }; - - var propTypes = createCommonjsModule(function (module) { - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - { - var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && - Symbol.for && - Symbol.for('react.element')) || - 0xeac7; - - var isValidElement = function(object) { - return typeof object === 'object' && - object !== null && - object.$$typeof === REACT_ELEMENT_TYPE; - }; - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = factoryWithTypeCheckers(isValidElement, throwOnDirectAccess); - } - }); - - var classnames = createCommonjsModule(function (module) { - /*! - Copyright (c) 2016 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames - */ - /* global define */ - - (function () { - - var hasOwn = {}.hasOwnProperty; - - function classNames () { - var classes = []; - - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (!arg) continue; - - var argType = typeof arg; - - if (argType === 'string' || argType === 'number') { - classes.push(arg); - } else if (Array.isArray(arg)) { - classes.push(classNames.apply(null, arg)); - } else if (argType === 'object') { - for (var key in arg) { - if (hasOwn.call(arg, key) && arg[key]) { - classes.push(key); - } - } - } - } - - return classes.join(' '); - } - - if ('object' !== 'undefined' && module.exports) { - module.exports = classNames; - } else if (typeof undefined === 'function' && typeof undefined.amd === 'object' && undefined.amd) { - // register as 'classnames', consistent with npm package name - undefined('classnames', [], function () { - return classNames; - }); - } else { - window.classNames = classNames; - } - }()); - }); - - // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc - function findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/ { - for (var i = 0, length = array.length; i < length; i++) { - if (callback.apply(callback, [array[i], i, array])) return array[i]; - } - } - - function isFunction(func /*: any*/) /*: boolean*/ { - return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; - } - - function isNum(num /*: any*/) /*: boolean*/ { - return typeof num === 'number' && !isNaN(num); - } - - function int(a /*: string*/) /*: number*/ { - return parseInt(a, 10); - } - - function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) { - if (props[propName]) { - return new Error('Invalid prop ' + propName + ' passed to ' + componentName + ' - do not set this, set it on the child.'); - } - } - - var prefixes = ['Moz', 'Webkit', 'O', 'ms']; - function getPrefix() /*: string*/ { - var prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform'; - - // Checking specifically for 'window.document' is for pseudo-browser server-side - // environments that define 'window' as the global context. - // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84) - if (typeof window === 'undefined' || typeof window.document === 'undefined') return ''; - - var style = window.document.documentElement.style; - - if (prop in style) return ''; - - for (var i = 0; i < prefixes.length; i++) { - if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i]; - } - - return ''; - } - - function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/ { - return prefix ? '' + prefix + kebabToTitleCase(prop) : prop; - } - - function kebabToTitleCase(str /*: string*/) /*: string*/ { - var out = ''; - var shouldCapitalize = true; - for (var i = 0; i < str.length; i++) { - if (shouldCapitalize) { - out += str[i].toUpperCase(); - shouldCapitalize = false; - } else if (str[i] === '-') { - shouldCapitalize = true; - } else { - out += str[i]; - } - } - return out; - } - - // Default export is the prefix itself, like 'Moz', 'Webkit', etc - // Note that you may have to re-test for certain things; for instance, Chrome 50 - // can handle unprefixed `transform`, but not unprefixed `user-select` - var browserPrefix = getPrefix(); - - var classCallCheck = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - }; - - var createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - var defineProperty = function (obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - }; - - var _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - var inherits = function (subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - }; - - var possibleConstructorReturn = function (self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (typeof call === "object" || typeof call === "function") ? call : self; - }; - - var slicedToArray = function () { - function sliceIterator(arr, i) { - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"]) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - return function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if (Symbol.iterator in Object(arr)) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; - }(); - - /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/ - - - var matchesSelectorFunc = ''; - function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/ { - if (!matchesSelectorFunc) { - matchesSelectorFunc = findInArray(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) { - // $FlowIgnore: Doesn't think elements are indexable - return isFunction(el[method]); - }); - } - - // Might not be found entirely (not an Element?) - in that case, bail - // $FlowIgnore: Doesn't think elements are indexable - if (!isFunction(el[matchesSelectorFunc])) return false; - - // $FlowIgnore: Doesn't think elements are indexable - return el[matchesSelectorFunc](selector); - } - - // Works up the tree to the draggable itself attempting to match selector. - function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/ { - var node = el; - do { - if (matchesSelector(node, selector)) return true; - if (node === baseNode) return false; - node = node.parentNode; - } while (node); - - return false; - } - - function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { - if (!el) { - return; - } - if (el.attachEvent) { - el.attachEvent('on' + event, handler); - } else if (el.addEventListener) { - el.addEventListener(event, handler, true); - } else { - // $FlowIgnore: Doesn't think elements are indexable - el['on' + event] = handler; - } - } - - function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/) /*: void*/ { - if (!el) { - return; - } - if (el.detachEvent) { - el.detachEvent('on' + event, handler); - } else if (el.removeEventListener) { - el.removeEventListener(event, handler, true); - } else { - // $FlowIgnore: Doesn't think elements are indexable - el['on' + event] = null; - } - } - - function outerHeight(node /*: HTMLElement*/) /*: number*/ { - // This is deliberately excluding margin for our calculations, since we are using - // offsetTop which is including margin. See getBoundPosition - var height = node.clientHeight; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - height += int(computedStyle.borderTopWidth); - height += int(computedStyle.borderBottomWidth); - return height; - } - - function outerWidth(node /*: HTMLElement*/) /*: number*/ { - // This is deliberately excluding margin for our calculations, since we are using - // offsetLeft which is including margin. See getBoundPosition - var width = node.clientWidth; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - width += int(computedStyle.borderLeftWidth); - width += int(computedStyle.borderRightWidth); - return width; - } - function innerHeight(node /*: HTMLElement*/) /*: number*/ { - var height = node.clientHeight; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - height -= int(computedStyle.paddingTop); - height -= int(computedStyle.paddingBottom); - return height; - } - - function innerWidth(node /*: HTMLElement*/) /*: number*/ { - var width = node.clientWidth; - var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node); - width -= int(computedStyle.paddingLeft); - width -= int(computedStyle.paddingRight); - return width; - } - - // Get from offsetParent - function offsetXYFromParent(evt /*: {clientX: number, clientY: number}*/, offsetParent /*: HTMLElement*/) /*: ControlPosition*/ { - var isBody = offsetParent === offsetParent.ownerDocument.body; - var offsetParentRect = isBody ? { left: 0, top: 0 } : offsetParent.getBoundingClientRect(); - - var x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left; - var y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top; - - return { x: x, y: y }; - } - - function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/ { - var translation = getTranslation(controlPos, positionOffset, 'px'); - return defineProperty({}, browserPrefixToKey('transform', browserPrefix), translation); - } - - function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/ { - var translation = getTranslation(controlPos, positionOffset, ''); - return translation; - } - function getTranslation(_ref2, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/ { - var x = _ref2.x, - y = _ref2.y; - - var translation = 'translate(' + x + unitSuffix + ',' + y + unitSuffix + ')'; - if (positionOffset) { - var defaultX = '' + (typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix); - var defaultY = '' + (typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix); - translation = 'translate(' + defaultX + ', ' + defaultY + ')' + translation; - } - return translation; - } - - function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/ { - return e.targetTouches && findInArray(e.targetTouches, function (t) { - return identifier === t.identifier; - }) || e.changedTouches && findInArray(e.changedTouches, function (t) { - return identifier === t.identifier; - }); - } - - function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/ { - if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier; - if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier; - } - - // User-select Hacks: - // - // Useful for preventing blue highlights all over everything when dragging. - - // Note we're passing `document` b/c we could be iframed - function addUserSelectStyles(doc /*: ?Document*/) { - if (!doc) return; - var styleEl = doc.getElementById('react-draggable-style-el'); - if (!styleEl) { - styleEl = doc.createElement('style'); - styleEl.type = 'text/css'; - styleEl.id = 'react-draggable-style-el'; - styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n'; - styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n'; - doc.getElementsByTagName('head')[0].appendChild(styleEl); - } - if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); - } - - function removeUserSelectStyles(doc /*: ?Document*/) { - try { - if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); - // $FlowIgnore: IE - if (doc.selection) { - // $FlowIgnore: IE - doc.selection.empty(); - } else { - window.getSelection().removeAllRanges(); // remove selection caused by scroll - } - } catch (e) { - // probably IE - } - } - - function styleHacks() /*: Object*/ { - var childStyle /*: Object*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - // Workaround IE pointer events; see #51 - // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278 - return _extends({ - touchAction: 'none' - }, childStyle); - } - - function addClassName(el /*: HTMLElement*/, className /*: string*/) { - if (el.classList) { - el.classList.add(className); - } else { - if (!el.className.match(new RegExp('(?:^|\\s)' + className + '(?!\\S)'))) { - el.className += ' ' + className; - } - } - } - - function removeClassName(el /*: HTMLElement*/, className /*: string*/) { - if (el.classList) { - el.classList.remove(className); - } else { - el.className = el.className.replace(new RegExp('(?:^|\\s)' + className + '(?!\\S)', 'g'), ''); - } - } - - /*:: import type Draggable from '../Draggable';*/ - /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/ - /*:: import type DraggableCore from '../DraggableCore';*/ - - - function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/ { - // If no bounds, short-circuit and move on - if (!draggable.props.bounds) return [x, y]; - - // Clone new bounds - var bounds = draggable.props.bounds; - - bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds); - var node = findDOMNode(draggable); - - if (typeof bounds === 'string') { - var ownerDocument = node.ownerDocument; - - var ownerWindow = ownerDocument.defaultView; - var boundNode = void 0; - if (bounds === 'parent') { - boundNode = node.parentNode; - } else { - boundNode = ownerDocument.querySelector(bounds); - } - if (!(boundNode instanceof ownerWindow.HTMLElement)) { - throw new Error('Bounds selector "' + bounds + '" could not find an element.'); - } - var nodeStyle = ownerWindow.getComputedStyle(node); - var boundNodeStyle = ownerWindow.getComputedStyle(boundNode); - // Compute bounds. This is a pain with padding and offsets but this gets it exactly right. - bounds = { - left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft), - top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop), - right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft + int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight), - bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop + int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom) - }; - } - - // Keep x and y below right and bottom limits... - if (isNum(bounds.right)) x = Math.min(x, bounds.right); - if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom); - - // But above left and top limits. - if (isNum(bounds.left)) x = Math.max(x, bounds.left); - if (isNum(bounds.top)) y = Math.max(y, bounds.top); - - return [x, y]; - } - - function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/ { - var x = Math.round(pendingX / grid[0]) * grid[0]; - var y = Math.round(pendingY / grid[1]) * grid[1]; - return [x, y]; - } - - function canDragX(draggable /*: Draggable*/) /*: boolean*/ { - return draggable.props.axis === 'both' || draggable.props.axis === 'x'; - } - - function canDragY(draggable /*: Draggable*/) /*: boolean*/ { - return draggable.props.axis === 'both' || draggable.props.axis === 'y'; - } - - // Get {x, y} positions from event. - function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/ { - var touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null; - if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch - var node = findDOMNode(draggableCore); - // User can provide an offsetParent if desired. - var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body; - return offsetXYFromParent(touchObj || e, offsetParent); - } - - // Create an data object exposed by 's events - function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/ { - var state = draggable.state; - var isStart = !isNum(state.lastX); - var node = findDOMNode(draggable); - - if (isStart) { - // If this is our first move, use the x and y as last coords. - return { - node: node, - deltaX: 0, deltaY: 0, - lastX: x, lastY: y, - x: x, y: y - }; - } else { - // Otherwise calculate proper values. - return { - node: node, - deltaX: x - state.lastX, deltaY: y - state.lastY, - lastX: state.lastX, lastY: state.lastY, - x: x, y: y - }; - } - } - - // Create an data exposed by 's events - function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/ { - var scale = draggable.props.scale; - return { - node: coreData.node, - x: draggable.state.x + coreData.deltaX / scale, - y: draggable.state.y + coreData.deltaY / scale, - deltaX: coreData.deltaX / scale, - deltaY: coreData.deltaY / scale, - lastX: draggable.state.x, - lastY: draggable.state.y - }; - } - - // A lot faster than stringify/parse - function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/ { - return { - left: bounds.left, - top: bounds.top, - right: bounds.right, - bottom: bounds.bottom - }; - } - - function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/ { - var node = ReactDOM.findDOMNode(draggable); - if (!node) { - throw new Error(': Unmounted during event!'); - } - // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME - return node; - } - - /*eslint no-console:0*/ - function log() { - } - - /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/ - - - // Simple abstraction for dragging events names. - /*:: import type {Element as ReactElement} from 'react';*/ - var eventsFor = { - touch: { - start: 'touchstart', - move: 'touchmove', - stop: 'touchend' - }, - mouse: { - start: 'mousedown', - move: 'mousemove', - stop: 'mouseup' - } - }; - - // Default to mouse events. - var dragEventFor = eventsFor.mouse; - - /*:: type DraggableCoreState = { - dragging: boolean, - lastX: number, - lastY: number, - touchIdentifier: ?number - };*/ - /*:: export type DraggableBounds = { - left: number, - right: number, - top: number, - bottom: number, - };*/ - /*:: export type DraggableData = { - node: HTMLElement, - x: number, y: number, - deltaX: number, deltaY: number, - lastX: number, lastY: number, - };*/ - /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;*/ - /*:: export type ControlPosition = {x: number, y: number};*/ - /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/ - - - // - // Define . - // - // is for advanced usage of . It maintains minimal internal state so it can - // work well with libraries that require more control over the element. - // - - /*:: export type DraggableCoreProps = { - allowAnyClick: boolean, - cancel: string, - children: ReactElement, - disabled: boolean, - enableUserSelectHack: boolean, - offsetParent: HTMLElement, - grid: [number, number], - handle: string, - onStart: DraggableEventHandler, - onDrag: DraggableEventHandler, - onStop: DraggableEventHandler, - onMouseDown: (e: MouseEvent) => void, - };*/ - - var DraggableCore = function (_React$Component) { - inherits(DraggableCore, _React$Component); - - function DraggableCore() { - var _ref; - - var _temp, _this, _ret; - - classCallCheck(this, DraggableCore); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = DraggableCore.__proto__ || Object.getPrototypeOf(DraggableCore)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - dragging: false, - // Used while dragging to determine deltas. - lastX: NaN, lastY: NaN, - touchIdentifier: null - }, _this.handleDragStart = function (e) { - // Make it possible to attach event handlers on top of this one. - _this.props.onMouseDown(e); - - // Only accept left-clicks. - if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; - - // Get nodes. Be sure to grab relative document (could be iframed) - var thisNode = ReactDOM.findDOMNode(_this); - if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) { - throw new Error(' not mounted on DragStart!'); - } - var ownerDocument = thisNode.ownerDocument; - - // Short circuit if handle or cancel prop was provided and selector doesn't match. - - if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !matchesSelectorAndParentsTo(e.target, _this.props.handle, thisNode) || _this.props.cancel && matchesSelectorAndParentsTo(e.target, _this.props.cancel, thisNode)) { - return; - } - - // Set touch identifier in component state if this is a touch event. This allows us to - // distinguish between individual touches on multitouch screens by identifying which - // touchpoint was set to this element. - var touchIdentifier = getTouchIdentifier(e); - _this.setState({ touchIdentifier: touchIdentifier }); - - // Get the current drag point from the event. This is used as the offset. - var position = getControlPosition(e, touchIdentifier, _this); - if (position == null) return; // not possible but satisfies flow - var x = position.x, - y = position.y; - - // Create an event object with all the data parents need to make a decision here. - - var coreEvent = createCoreData(_this, x, y); - - // Call event handler. If it returns explicit false, cancel. - log('calling', _this.props.onStart); - var shouldUpdate = _this.props.onStart(e, coreEvent); - if (shouldUpdate === false) return; - - // Add a style to the body to disable user-select. This prevents text from - // being selected all over the page. - if (_this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument); - - // Initiate dragging. Set the current x and y as offsets - // so we know how much we've moved during the drag. This allows us - // to drag elements around even if they have been moved, without issue. - _this.setState({ - dragging: true, - - lastX: x, - lastY: y - }); - - // Add events to the document directly so we catch when the user's mouse/touch moves outside of - // this element. We use different events depending on whether or not we have detected that this - // is a touch-capable device. - addEvent(ownerDocument, dragEventFor.move, _this.handleDrag); - addEvent(ownerDocument, dragEventFor.stop, _this.handleDragStop); - }, _this.handleDrag = function (e) { - - // Prevent scrolling on mobile devices, like ipad/iphone. - if (e.type === 'touchmove') e.preventDefault(); - - // Get the current drag point from the event. This is used as the offset. - var position = getControlPosition(e, _this.state.touchIdentifier, _this); - if (position == null) return; - var x = position.x, - y = position.y; - - // Snap to grid if prop has been provided - - if (Array.isArray(_this.props.grid)) { - var _deltaX = x - _this.state.lastX, - _deltaY = y - _this.state.lastY; - - var _snapToGrid = snapToGrid(_this.props.grid, _deltaX, _deltaY); - - var _snapToGrid2 = slicedToArray(_snapToGrid, 2); - - _deltaX = _snapToGrid2[0]; - _deltaY = _snapToGrid2[1]; - - if (!_deltaX && !_deltaY) return; // skip useless drag - x = _this.state.lastX + _deltaX, y = _this.state.lastY + _deltaY; - } - - var coreEvent = createCoreData(_this, x, y); - - // Call event handler. If it returns explicit false, trigger end. - var shouldUpdate = _this.props.onDrag(e, coreEvent); - if (shouldUpdate === false) { - try { - // $FlowIgnore - _this.handleDragStop(new MouseEvent('mouseup')); - } catch (err) { - // Old browsers - var event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/); - // I see why this insanity was deprecated - // $FlowIgnore - event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); - _this.handleDragStop(event); - } - return; - } - - _this.setState({ - lastX: x, - lastY: y - }); - }, _this.handleDragStop = function (e) { - if (!_this.state.dragging) return; - - var position = getControlPosition(e, _this.state.touchIdentifier, _this); - if (position == null) return; - var x = position.x, - y = position.y; - - var coreEvent = createCoreData(_this, x, y); - - var thisNode = ReactDOM.findDOMNode(_this); - if (thisNode) { - // Remove user-select hack - if (_this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument); - } - - // Reset the el. - _this.setState({ - dragging: false, - lastX: NaN, - lastY: NaN - }); - - // Call event handler - _this.props.onStop(e, coreEvent); - - if (thisNode) { - removeEvent(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag); - removeEvent(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop); - } - }, _this.onMouseDown = function (e) { - dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse - - return _this.handleDragStart(e); - }, _this.onMouseUp = function (e) { - dragEventFor = eventsFor.mouse; - - return _this.handleDragStop(e); - }, _this.onTouchStart = function (e) { - // We're on a touch device now, so change the event handlers - dragEventFor = eventsFor.touch; - - return _this.handleDragStart(e); - }, _this.onTouchEnd = function (e) { - // We're on a touch device now, so change the event handlers - dragEventFor = eventsFor.touch; - - return _this.handleDragStop(e); - }, _temp), possibleConstructorReturn(_this, _ret); - } - - createClass(DraggableCore, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - // Remove any leftover event handlers. Remove both touch and mouse handlers in case - // some browser quirk caused a touch event to fire during a mouse move, or vice versa. - var thisNode = ReactDOM.findDOMNode(this); - if (thisNode) { - var ownerDocument = thisNode.ownerDocument; - - removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag); - removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag); - removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); - removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop); - if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument); - } - } - - // Same as onMouseDown (start drag), but now consider this a touch device. - - }, { - key: 'render', - value: function render() { - // Reuse the child provided - // This makes it flexible to use whatever element is wanted (div, ul, etc) - return React.cloneElement(React.Children.only(this.props.children), { - style: styleHacks(this.props.children.props.style), - - // Note: mouseMove handler is attached to document so it will still function - // when the user drags quickly and leaves the bounds of the element. - onMouseDown: this.onMouseDown, - onTouchStart: this.onTouchStart, - onMouseUp: this.onMouseUp, - onTouchEnd: this.onTouchEnd - }); - } - }]); - return DraggableCore; - }(React.Component); - - DraggableCore.displayName = 'DraggableCore'; - DraggableCore.propTypes = { - /** - * `allowAnyClick` allows dragging using any mouse button. - * By default, we only accept the left button. - * - * Defaults to `false`. - */ - allowAnyClick: propTypes.bool, - - /** - * `disabled`, if true, stops the from dragging. All handlers, - * with the exception of `onMouseDown`, will not fire. - */ - disabled: propTypes.bool, - - /** - * By default, we add 'user-select:none' attributes to the document body - * to prevent ugly text selection during drag. If this is causing problems - * for your app, set this to `false`. - */ - enableUserSelectHack: propTypes.bool, - - /** - * `offsetParent`, if set, uses the passed DOM node to compute drag offsets - * instead of using the parent node. - */ - offsetParent: function offsetParent(props /*: DraggableCoreProps*/, propName /*: $Keys*/) { - if (props[propName] && props[propName].nodeType !== 1) { - throw new Error('Draggable\'s offsetParent must be a DOM Node.'); - } - }, - - /** - * `grid` specifies the x and y that dragging should snap to. - */ - grid: propTypes.arrayOf(propTypes.number), - - /** - * `scale` specifies the scale of the area you are dragging inside of. It allows - * the drag deltas to scale correctly with how far zoomed in/out you are. - */ - scale: propTypes.number, - - /** - * `handle` specifies a selector to be used as the handle that initiates drag. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
- *
Click me to drag
- *
This is some other content
- *
- *
- * ); - * } - * }); - * ``` - */ - handle: propTypes.string, - - /** - * `cancel` specifies a selector to be used to prevent drag initialization. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return( - * - *
- *
You can't drag from here
- *
Dragging here works fine
- *
- *
- * ); - * } - * }); - * ``` - */ - cancel: propTypes.string, - - /** - * Called when dragging starts. - * If this function returns the boolean false, dragging will be canceled. - */ - onStart: propTypes.func, - - /** - * Called while dragging. - * If this function returns the boolean false, dragging will be canceled. - */ - onDrag: propTypes.func, - - /** - * Called when dragging stops. - * If this function returns the boolean false, the drag will remain active. - */ - onStop: propTypes.func, - - /** - * A workaround option which can be passed if onMouseDown needs to be accessed, - * since it'll always be blocked (as there is internal use of onMouseDown) - */ - onMouseDown: propTypes.func, - - /** - * These properties should be defined on the child, not here. - */ - className: dontSetMe, - style: dontSetMe, - transform: dontSetMe - }; - DraggableCore.defaultProps = { - allowAnyClick: false, // by default only accept left click - cancel: null, - disabled: false, - enableUserSelectHack: true, - offsetParent: null, - handle: null, - grid: null, - transform: null, - onStart: function onStart() {}, - onDrag: function onDrag() {}, - onStop: function onStop() {}, - onMouseDown: function onMouseDown() {} - }; - - /*:: import type {DraggableEventHandler} from './utils/types';*/ - /*:: import type {Element as ReactElement} from 'react';*/ - /*:: type DraggableState = { - dragging: boolean, - dragged: boolean, - x: number, y: number, - slackX: number, slackY: number, - isElementSVG: boolean - };*/ - - - // - // Define - // - - /*:: export type DraggableProps = { - ...$Exact, - axis: 'both' | 'x' | 'y' | 'none', - bounds: DraggableBounds | string | false, - defaultClassName: string, - defaultClassNameDragging: string, - defaultClassNameDragged: string, - defaultPosition: ControlPosition, - positionOffset: PositionOffsetControlPosition, - position: ControlPosition, - scale: number - };*/ - - var Draggable = function (_React$Component) { - inherits(Draggable, _React$Component); - - function Draggable(props /*: DraggableProps*/) { - classCallCheck(this, Draggable); - - var _this = possibleConstructorReturn(this, (Draggable.__proto__ || Object.getPrototypeOf(Draggable)).call(this, props)); - - _this.onDragStart = function (e, coreData) { - - // Short-circuit if user's callback killed it. - var shouldStart = _this.props.onStart(e, createDraggableData(_this, coreData)); - // Kills start event on core as well, so move handlers are never bound. - if (shouldStart === false) return false; - - _this.setState({ dragging: true, dragged: true }); - }; - - _this.onDrag = function (e, coreData) { - if (!_this.state.dragging) return false; - - var uiData = createDraggableData(_this, coreData); - - var newState /*: $Shape*/ = { - x: uiData.x, - y: uiData.y - }; - - // Keep within bounds. - if (_this.props.bounds) { - // Save original x and y. - var _x = newState.x, - _y = newState.y; - - // Add slack to the values used to calculate bound position. This will ensure that if - // we start removing slack, the element won't react to it right away until it's been - // completely removed. - - newState.x += _this.state.slackX; - newState.y += _this.state.slackY; - - // Get bound position. This will ceil/floor the x and y within the boundaries. - - var _getBoundPosition = getBoundPosition(_this, newState.x, newState.y), - _getBoundPosition2 = slicedToArray(_getBoundPosition, 2), - newStateX = _getBoundPosition2[0], - newStateY = _getBoundPosition2[1]; - - newState.x = newStateX; - newState.y = newStateY; - - // Recalculate slack by noting how much was shaved by the boundPosition handler. - newState.slackX = _this.state.slackX + (_x - newState.x); - newState.slackY = _this.state.slackY + (_y - newState.y); - - // Update the event we fire to reflect what really happened after bounds took effect. - uiData.x = newState.x; - uiData.y = newState.y; - uiData.deltaX = newState.x - _this.state.x; - uiData.deltaY = newState.y - _this.state.y; - } - - // Short-circuit if user's callback killed it. - var shouldUpdate = _this.props.onDrag(e, uiData); - if (shouldUpdate === false) return false; - - _this.setState(newState); - }; - - _this.onDragStop = function (e, coreData) { - if (!_this.state.dragging) return false; - - // Short-circuit if user's callback killed it. - var shouldStop = _this.props.onStop(e, createDraggableData(_this, coreData)); - if (shouldStop === false) return false; - - var newState /*: $Shape*/ = { - dragging: false, - slackX: 0, - slackY: 0 - }; - - // If this is a controlled component, the result of this operation will be to - // revert back to the old position. We expect a handler on `onDragStop`, at the least. - var controlled = Boolean(_this.props.position); - if (controlled) { - var _this$props$position = _this.props.position, - _x2 = _this$props$position.x, - _y2 = _this$props$position.y; - - newState.x = _x2; - newState.y = _y2; - } - - _this.setState(newState); - }; - - _this.state = { - // Whether or not we are currently dragging. - dragging: false, - - // Whether or not we have been dragged before. - dragged: false, - - // Current transform x and y. - x: props.position ? props.position.x : props.defaultPosition.x, - y: props.position ? props.position.y : props.defaultPosition.y, - - // Used for compensating for out-of-bounds drags - slackX: 0, slackY: 0, - - // Can only determine if SVG after mounting - isElementSVG: false - }; - - if (props.position && !(props.onDrag || props.onStop)) { - // eslint-disable-next-line no-console - console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.'); - } - return _this; - } - - createClass(Draggable, [{ - key: 'componentDidMount', - value: function componentDidMount() { - // Check to see if the element passed is an instanceof SVGElement - if (typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) { - this.setState({ isElementSVG: true }); - } - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps /*: Object*/) { - // Set x/y if position has changed - if (nextProps.position && (!this.props.position || nextProps.position.x !== this.props.position.x || nextProps.position.y !== this.props.position.y)) { - this.setState({ x: nextProps.position.x, y: nextProps.position.y }); - } - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.setState({ dragging: false }); // prevents invariant if unmounted while dragging - } - }, { - key: 'render', - value: function render() /*: ReactElement*/ { - var _classNames; - - var style = {}, - svgTransform = null; - - // If this is controlled, we don't want to move it - unless it's dragging. - var controlled = Boolean(this.props.position); - var draggable = !controlled || this.state.dragging; - - var position = this.props.position || this.props.defaultPosition; - var transformOpts = { - // Set left if horizontal drag is enabled - x: canDragX(this) && draggable ? this.state.x : position.x, - - // Set top if vertical drag is enabled - y: canDragY(this) && draggable ? this.state.y : position.y - }; - - // If this element was SVG, we use the `transform` attribute. - if (this.state.isElementSVG) { - svgTransform = createSVGTransform(transformOpts, this.props.positionOffset); - } else { - // Add a CSS transform to move the element around. This allows us to move the element around - // without worrying about whether or not it is relatively or absolutely positioned. - // If the item you are dragging already has a transform set, wrap it in a so - // has a clean slate. - style = createCSSTransform(transformOpts, this.props.positionOffset); - } - - var _props = this.props, - defaultClassName = _props.defaultClassName, - defaultClassNameDragging = _props.defaultClassNameDragging, - defaultClassNameDragged = _props.defaultClassNameDragged; - - - var children = React.Children.only(this.props.children); - - // Mark with class while dragging - var className = classnames(children.props.className || '', defaultClassName, (_classNames = {}, defineProperty(_classNames, defaultClassNameDragging, this.state.dragging), defineProperty(_classNames, defaultClassNameDragged, this.state.dragged), _classNames)); - - // Reuse the child provided - // This makes it flexible to use whatever element is wanted (div, ul, etc) - return React.createElement( - DraggableCore, - _extends({}, this.props, { onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop }), - React.cloneElement(children, { - className: className, - style: _extends({}, children.props.style, style), - transform: svgTransform - }) - ); - } - }]); - return Draggable; - }(React.Component); - - Draggable.displayName = 'Draggable'; - Draggable.propTypes = _extends({}, DraggableCore.propTypes, { - - /** - * `axis` determines which axis the draggable can move. - * - * Note that all callbacks will still return data as normal. This only - * controls flushing to the DOM. - * - * 'both' allows movement horizontally and vertically. - * 'x' limits movement to horizontal axis. - * 'y' limits movement to vertical axis. - * 'none' limits all movement. - * - * Defaults to 'both'. - */ - axis: propTypes.oneOf(['both', 'x', 'y', 'none']), - - /** - * `bounds` determines the range of movement available to the element. - * Available values are: - * - * 'parent' restricts movement within the Draggable's parent node. - * - * Alternatively, pass an object with the following properties, all of which are optional: - * - * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND} - * - * All values are in px. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
Content
- *
- * ); - * } - * }); - * ``` - */ - bounds: propTypes.oneOfType([propTypes.shape({ - left: propTypes.number, - right: propTypes.number, - top: propTypes.number, - bottom: propTypes.number - }), propTypes.string, propTypes.oneOf([false])]), - - defaultClassName: propTypes.string, - defaultClassNameDragging: propTypes.string, - defaultClassNameDragged: propTypes.string, - - /** - * `defaultPosition` specifies the x and y that the dragged item should start at - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I start with transformX: 25px and transformY: 25px;
- *
- * ); - * } - * }); - * ``` - */ - defaultPosition: propTypes.shape({ - x: propTypes.number, - y: propTypes.number - }), - positionOffset: propTypes.shape({ - x: propTypes.oneOfType([propTypes.number, propTypes.string]), - y: propTypes.oneOfType([propTypes.number, propTypes.string]) - }), - - /** - * `position`, if present, defines the current position of the element. - * - * This is similar to how form elements in React work - if no `position` is supplied, the component - * is uncontrolled. - * - * Example: - * - * ```jsx - * let App = React.createClass({ - * render: function () { - * return ( - * - *
I start with transformX: 25px and transformY: 25px;
- *
- * ); - * } - * }); - * ``` - */ - position: propTypes.shape({ - x: propTypes.number, - y: propTypes.number - }), - - /** - * These properties should be defined on the child, not here. - */ - className: dontSetMe, - style: dontSetMe, - transform: dontSetMe - }); - Draggable.defaultProps = _extends({}, DraggableCore.defaultProps, { - axis: 'both', - bounds: false, - defaultClassName: 'react-draggable', - defaultClassNameDragging: 'react-draggable-dragging', - defaultClassNameDragged: 'react-draggable-dragged', - defaultPosition: { x: 0, y: 0 }, - position: null, - scale: 1 - }); - - // Previous versions of this lib exported as the root export. As to not break - // them, or TypeScript, we export *both* as the root and as 'default'. - // See https://github.com/mzabriskie/react-draggable/pull/254 - // and https://github.com/mzabriskie/react-draggable/issues/266 - Draggable.default = Draggable; - Draggable.DraggableCore = DraggableCore; - - return Draggable; - -}))); -//# sourceMappingURL=react-draggable.js.map diff --git a/dist/react-draggable.js.map b/dist/react-draggable.js.map deleted file mode 100644 index 2648de2b..00000000 --- a/dist/react-draggable.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-draggable.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/utils/log.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\n/*eslint no-console:0*/\nexport default function log(...args: any) {\n if (process.env.DRAGGABLE_DEBUG) console.log(...args);\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["emptyFunction","invariant","require$$0","warning","require$$1","ReactPropTypesSecret","require$$2","assign","checkPropTypes","define","findInArray","array","callback","i","length","apply","isFunction","func","Object","prototype","toString","call","isNum","num","isNaN","int","a","parseInt","dontSetMe","props","propName","componentName","Error","prefixes","getPrefix","prop","window","document","style","documentElement","browserPrefixToKey","prefix","kebabToTitleCase","str","out","shouldCapitalize","toUpperCase","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","node","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","outerHeight","height","clientHeight","computedStyle","ownerDocument","defaultView","getComputedStyle","borderTopWidth","borderBottomWidth","outerWidth","width","clientWidth","borderLeftWidth","borderRightWidth","innerHeight","paddingTop","paddingBottom","innerWidth","paddingLeft","paddingRight","offsetXYFromParent","evt","offsetParent","isBody","body","offsetParentRect","left","top","getBoundingClientRect","x","clientX","scrollLeft","y","clientY","scrollTop","createCSSTransform","controlPos","positionOffset","translation","getTranslation","browserPrefix","createSVGTransform","unitSuffix","defaultX","defaultY","getTouch","e","identifier","targetTouches","t","changedTouches","getTouchIdentifier","addUserSelectStyles","doc","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","styleHacks","childStyle","touchAction","className","classList","add","match","RegExp","remove","replace","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","ownerWindow","boundNode","querySelector","HTMLElement","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","right","marginRight","bottom","marginBottom","Math","min","max","snapToGrid","grid","pendingX","pendingY","round","canDragX","axis","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","state","isStart","lastX","deltaX","deltaY","lastY","createDraggableData","coreData","scale","ReactDOM","log","eventsFor","touch","start","move","stop","mouse","dragEventFor","DraggableCore","dragging","NaN","handleDragStart","onMouseDown","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","setState","position","coreEvent","onStart","shouldUpdate","enableUserSelectHack","handleDrag","handleDragStop","preventDefault","Array","isArray","onDrag","MouseEvent","err","createEvent","initMouseEvent","onStop","onMouseUp","onTouchStart","onTouchEnd","React","cloneElement","Children","only","children","Component","displayName","propTypes","PropTypes","bool","nodeType","arrayOf","number","string","transform","defaultProps","Draggable","onDragStart","shouldStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","shouldStop","controlled","Boolean","defaultPosition","isElementSVG","console","warn","SVGElement","nextProps","svgTransform","transformOpts","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","classNames","oneOf","oneOfType","shape","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;CAWA,SAAS,iBAAiB,CAAC,GAAG,EAAE;GAC9B,OAAO,YAAY;KACjB,OAAO,GAAG,CAAC;IACZ,CAAC;EACH;;;;;;;CAOD,IAAI,aAAa,GAAG,SAAS,aAAa,GAAG,EAAE,CAAC;;CAEhD,aAAa,CAAC,WAAW,GAAG,iBAAiB,CAAC;CAC9C,aAAa,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;CAC1D,aAAa,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;CACxD,aAAa,CAAC,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;CACxD,aAAa,CAAC,eAAe,GAAG,YAAY;GAC1C,OAAO,IAAI,CAAC;EACb,CAAC;CACF,aAAa,CAAC,mBAAmB,GAAG,UAAU,GAAG,EAAE;GACjD,OAAO,GAAG,CAAC;EACZ,CAAC;;CAEF,mBAAc,GAAG,aAAa;;CCnC9B;;;;;;;;;;;;;;;;;;;CAqBA,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;;AAExD,CAA2C;GACzC,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;KAC/C,IAAI,MAAM,KAAK,SAAS,EAAE;OACxB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;MACjE;IACF,CAAC;EACH;;CAED,SAAS,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;GACtD,cAAc,CAAC,MAAM,CAAC,CAAC;;GAEvB,IAAI,CAAC,SAAS,EAAE;KACd,IAAI,KAAK,CAAC;KACV,IAAI,MAAM,KAAK,SAAS,EAAE;OACxB,KAAK,GAAG,IAAI,KAAK,CAAC,oEAAoE,GAAG,6DAA6D,CAAC,CAAC;MACzJ,MAAM;OACL,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;OAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;OACjB,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY;SAClD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;OACJ,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC;MACpC;;KAED,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;KACtB,MAAM,KAAK,CAAC;IACb;EACF;;CAED,eAAc,GAAG,SAAS;;;;;;;;;CCjC1B,IAAI,OAAO,GAAGA,eAAa,CAAC;;AAE5B,CAA2C;GACzC,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;KAC/C,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;OACtG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;MAClC;;KAED,IAAI,QAAQ,GAAG,CAAC,CAAC;KACjB,IAAI,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY;OAC5D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;MACzB,CAAC,CAAC;KACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;OAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;MACxB;KACD,IAAI;;;;OAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;MAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;IACf,CAAC;;GAEF,OAAO,GAAG,SAAS,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE;KAC5C,IAAI,MAAM,KAAK,SAAS,EAAE;OACxB,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,kBAAkB,CAAC,CAAC;MACnG;;KAED,IAAI,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE;OACvD,OAAO;MACR;;KAED,IAAI,CAAC,SAAS,EAAE;OACd,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;SAC7G,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC;;OAED,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;MACtD;IACF,CAAC;EACH;;CAED,aAAc,GAAG,OAAO;;CC7DxB;;;;;;CAQA,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;CACzD,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;CACrD,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;;CAE7D,SAAS,QAAQ,CAAC,GAAG,EAAE;EACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;GACtC,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;GAC7E;;EAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;EACnB;;CAED,SAAS,eAAe,GAAG;EAC1B,IAAI;GACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IACnB,OAAO,KAAK,CAAC;IACb;;;;;GAKD,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;GAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;GAChB,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IACjD,OAAO,KAAK,CAAC;IACb;;;GAGD,IAAI,KAAK,GAAG,EAAE,CAAC;GACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAC5B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC;GACD,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;IAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC;GACH,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;IACrC,OAAO,KAAK,CAAC;IACb;;;GAGD,IAAI,KAAK,GAAG,EAAE,CAAC;GACf,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;IAC1D,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACvB,CAAC,CAAC;GACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;KAChD,sBAAsB,EAAE;IACzB,OAAO,KAAK,CAAC;IACb;;GAED,OAAO,IAAI,CAAC;GACZ,CAAC,OAAO,GAAG,EAAE;;GAEb,OAAO,KAAK,CAAC;GACb;EACD;;CAED,gBAAc,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;EAC9E,IAAI,IAAI,CAAC;EACT,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;EAC1B,IAAI,OAAO,CAAC;;EAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;GAC1C,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;GAE5B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;IACrB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;KACnC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;KACpB;IACD;;GAED,IAAI,qBAAqB,EAAE;IAC1B,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KACxC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;MAC5C,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;MAClC;KACD;IACD;GACD;;EAED,OAAO,EAAE,CAAC;EACV,CAAC;;CCzFF;;;;;;;CASA,IAAI,oBAAoB,GAAG,8CAA8C,CAAC;;CAE1E,0BAAc,GAAG,oBAAoB,CAAC;;CCFK;GACzC,IAAIC,WAAS,GAAGC,WAA6B,CAAC;GAC9C,IAAIC,SAAO,GAAGC,SAA2B,CAAC;GAC1C,IAAIC,sBAAoB,GAAGC,sBAAqC,CAAC;GACjE,IAAI,kBAAkB,GAAG,EAAE,CAAC;EAC7B;;;;;;;;;;;;;CAaD,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE;GAC5E,AAA2C;KACzC,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE;OAClC,IAAI,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;SAC1C,IAAI,KAAK,CAAC;;;;SAIV,IAAI;;;WAGFL,WAAS,CAAC,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE,mEAAmE,GAAG,8CAA8C,EAAE,aAAa,IAAI,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;WACvQ,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAEI,sBAAoB,CAAC,CAAC;UAC5G,CAAC,OAAO,EAAE,EAAE;WACX,KAAK,GAAG,EAAE,CAAC;UACZ;SACDF,SAAO,CAAC,CAAC,KAAK,IAAI,KAAK,YAAY,KAAK,EAAE,iEAAiE,GAAG,+DAA+D,GAAG,iEAAiE,GAAG,gEAAgE,GAAG,iCAAiC,EAAE,aAAa,IAAI,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC;SACha,IAAI,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,EAAE;;;WAGpE,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;;WAEzC,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC;;WAEvCA,SAAO,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;UAC7F;QACF;MACF;IACF;EACF;;CAED,oBAAc,GAAG,cAAc,CAAC;;CCzChC,2BAAc,GAAG,SAAS,cAAc,EAAE,mBAAmB,EAAE;;GAE7D,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC;GACtE,IAAI,oBAAoB,GAAG,YAAY,CAAC;;;;;;;;;;;;;;;;GAgBxC,SAAS,aAAa,CAAC,aAAa,EAAE;KACpC,IAAI,UAAU,GAAG,aAAa,KAAK,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;KAC7H,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;OACpC,OAAO,UAAU,CAAC;MACnB;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDD,IAAI,SAAS,GAAG,eAAe,CAAC;;;;GAIhC,IAAI,cAAc,GAAG;KACnB,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC;KAC1C,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC;KAC3C,IAAI,EAAE,0BAA0B,CAAC,UAAU,CAAC;KAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;KAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;KAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;KAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;;KAE5C,GAAG,EAAE,oBAAoB,EAAE;KAC3B,OAAO,EAAE,wBAAwB;KACjC,OAAO,EAAE,wBAAwB,EAAE;KACnC,UAAU,EAAE,yBAAyB;KACrC,IAAI,EAAE,iBAAiB,EAAE;KACzB,QAAQ,EAAE,yBAAyB;KACnC,KAAK,EAAE,qBAAqB;KAC5B,SAAS,EAAE,sBAAsB;KACjC,KAAK,EAAE,sBAAsB;KAC7B,KAAK,EAAE,4BAA4B;IACpC,CAAC;;;;;;;GAOF,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;;KAEhB,IAAI,CAAC,KAAK,CAAC,EAAE;;;OAGX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;MACnC,MAAM;;OAEL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAC3B;IACF;;;;;;;;;;GAUD,SAAS,aAAa,CAAC,OAAO,EAAE;KAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACjB;;GAED,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;;GAE1C,SAAS,0BAA0B,CAAC,QAAQ,EAAE;KAC5C,AAA2C;OACzC,IAAI,uBAAuB,GAAG,EAAE,CAAC;OACjC,IAAI,0BAA0B,GAAG,CAAC,CAAC;MACpC;KACD,SAAS,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;OAC7F,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC;OAC3C,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAC;;OAExC,IAAI,MAAM,KAAKE,sBAAoB,EAAE;SACnC,IAAI,mBAAmB,EAAE;;WAEvBJ,WAAS;aACP,KAAK;aACL,sFAAsF;aACtF,iDAAiD;aACjD,gDAAgD;YACjD,CAAC;UACH,MAAM,IAAI,aAAoB,KAAK,YAAY,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;;WAElF,IAAI,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;WAC9C;aACE,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;aAElC,0BAA0B,GAAG,CAAC;aAC9B;aACAE,SAAO;eACL,KAAK;eACL,wDAAwD;eACxD,yDAAyD;eACzD,yDAAyD;eACzD,gEAAgE;eAChE,+DAA+D,GAAG,cAAc;eAChF,YAAY;eACZ,aAAa;cACd,CAAC;aACF,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;aACzC,0BAA0B,EAAE,CAAC;YAC9B;UACF;QACF;OACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;SAC3B,IAAI,UAAU,EAAE;WACd,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;aAC5B,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,0BAA0B,IAAI,MAAM,GAAG,aAAa,GAAG,6BAA6B,CAAC,CAAC,CAAC;YAC3J;WACD,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,6BAA6B,IAAI,GAAG,GAAG,aAAa,GAAG,kCAAkC,CAAC,CAAC,CAAC;UAChK;SACD,OAAO,IAAI,CAAC;QACb,MAAM;SACL,OAAO,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzE;MACF;;KAED,IAAI,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACnD,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;KAEzD,OAAO,gBAAgB,CAAC;IACzB;;GAED,SAAS,0BAA0B,CAAC,YAAY,EAAE;KAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;OAChF,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;OACtC,IAAI,QAAQ,KAAK,YAAY,EAAE;;;;SAI7B,IAAI,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;;SAE5C,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/L;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,oBAAoB,GAAG;KAC9B,OAAO,0BAA0B,CAACH,eAAa,CAAC,eAAe,CAAC,CAAC;IAClE;;GAED,SAAS,wBAAwB,CAAC,WAAW,EAAE;KAC7C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;SACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,iDAAiD,CAAC,CAAC;QAChJ;OACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;SAC7B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;SACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;QACvK;OACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACzC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAEK,sBAAoB,CAAC,CAAC;SACnH,IAAI,KAAK,YAAY,KAAK,EAAE;WAC1B,OAAO,KAAK,CAAC;UACd;QACF;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,wBAAwB,GAAG;KAClC,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;SAC9B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;SACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,oCAAoC,CAAC,CAAC,CAAC;QACpL;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,yBAAyB,CAAC,aAAa,EAAE;KAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,aAAa,CAAC,EAAE;SAC/C,IAAI,iBAAiB,GAAG,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC;SACxD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;SACpD,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;QACpN;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,qBAAqB,CAAC,cAAc,EAAE;KAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;OAClC,AAAwCF,SAAO,CAAC,KAAK,EAAE,oEAAoE,CAAC,AAAS,CAAC;OACtI,OAAOH,eAAa,CAAC,eAAe,CAAC;MACtC;;KAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;WACpC,OAAO,IAAI,CAAC;UACb;QACF;;OAED,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;OAClD,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,qBAAqB,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;MAC5L;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,yBAAyB,CAAC,WAAW,EAAE;KAC9C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;SACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,kDAAkD,CAAC,CAAC;QACjJ;OACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;OACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAAC,CAAC;QACxK;OACD,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;SACzB,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;WACjC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEK,sBAAoB,CAAC,CAAC;WACjH,IAAI,KAAK,YAAY,KAAK,EAAE;aAC1B,OAAO,KAAK,CAAC;YACd;UACF;QACF;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,sBAAsB,CAAC,mBAAmB,EAAE;KACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;OACvC,AAAwCF,SAAO,CAAC,KAAK,EAAE,wEAAwE,CAAC,AAAS,CAAC;OAC1I,OAAOH,eAAa,CAAC,eAAe,CAAC;MACtC;;KAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;OACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;OACrC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;SACjCG,SAAO;WACL,KAAK;WACL,oFAAoF;WACpF,0BAA0B;WAC1B,wBAAwB,CAAC,OAAO,CAAC;WACjC,CAAC;UACF,CAAC;SACF,OAAOH,eAAa,CAAC,eAAe,CAAC;QACtC;MACF;;KAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;SACrC,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAEK,sBAAoB,CAAC,IAAI,IAAI,EAAE;WACjG,OAAO,IAAI,CAAC;UACb;QACF;;OAED,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;MACzH;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,iBAAiB,GAAG;KAC3B,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;SAC5B,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,0BAA0B,CAAC,CAAC,CAAC;QAC/I;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,sBAAsB,CAAC,UAAU,EAAE;KAC1C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;OACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;QACvK;OACD,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;SAC1B,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,IAAI,CAAC,OAAO,EAAE;WACZ,SAAS;UACV;SACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEA,sBAAoB,CAAC,CAAC;SAC7G,IAAI,KAAK,EAAE;WACT,OAAO,KAAK,CAAC;UACd;QACF;OACD,OAAO,IAAI,CAAC;MACb;KACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,4BAA4B,CAAC,UAAU,EAAE;KAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;OAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;OACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;QACvK;;;OAGD,IAAI,OAAO,GAAGE,YAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;OACtD,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;SACvB,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,IAAI,CAAC,OAAO,EAAE;WACZ,OAAO,IAAI,aAAa;aACtB,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI;aACxG,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;aAC9D,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;YACxE,CAAC;UACH;SACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEF,sBAAoB,CAAC,CAAC;SAC7G,IAAI,KAAK,EAAE;WACT,OAAO,KAAK,CAAC;UACd;QACF;OACD,OAAO,IAAI,CAAC;MACb;;KAED,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C;;GAED,SAAS,MAAM,CAAC,SAAS,EAAE;KACzB,QAAQ,OAAO,SAAS;OACtB,KAAK,QAAQ,CAAC;OACd,KAAK,QAAQ,CAAC;OACd,KAAK,WAAW;SACd,OAAO,IAAI,CAAC;OACd,KAAK,SAAS;SACZ,OAAO,CAAC,SAAS,CAAC;OACpB,KAAK,QAAQ;SACX,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;WAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;UAChC;SACD,IAAI,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;WACnD,OAAO,IAAI,CAAC;UACb;;SAED,IAAI,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;SAC1C,IAAI,UAAU,EAAE;WACd,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;WAC1C,IAAI,IAAI,CAAC;WACT,IAAI,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;aACpC,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;eACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;iBACvB,OAAO,KAAK,CAAC;gBACd;cACF;YACF,MAAM;;aAEL,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;eACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;eACvB,IAAI,KAAK,EAAE;iBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;mBACrB,OAAO,KAAK,CAAC;kBACd;gBACF;cACF;YACF;UACF,MAAM;WACL,OAAO,KAAK,CAAC;UACd;;SAED,OAAO,IAAI,CAAC;OACd;SACE,OAAO,KAAK,CAAC;MAChB;IACF;;GAED,SAAS,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;;KAErC,IAAI,QAAQ,KAAK,QAAQ,EAAE;OACzB,OAAO,IAAI,CAAC;MACb;;;KAGD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;OAC3C,OAAO,IAAI,CAAC;MACb;;;KAGD,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,SAAS,YAAY,MAAM,EAAE;OAC/D,OAAO,IAAI,CAAC;MACb;;KAED,OAAO,KAAK,CAAC;IACd;;;GAGD,SAAS,WAAW,CAAC,SAAS,EAAE;KAC9B,IAAI,QAAQ,GAAG,OAAO,SAAS,CAAC;KAChC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;OAC5B,OAAO,OAAO,CAAC;MAChB;KACD,IAAI,SAAS,YAAY,MAAM,EAAE;;;;OAI/B,OAAO,QAAQ,CAAC;MACjB;KACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;OACjC,OAAO,QAAQ,CAAC;MACjB;KACD,OAAO,QAAQ,CAAC;IACjB;;;;GAID,SAAS,cAAc,CAAC,SAAS,EAAE;KACjC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,IAAI,EAAE;OAC1D,OAAO,EAAE,GAAG,SAAS,CAAC;MACvB;KACD,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;KACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;OACzB,IAAI,SAAS,YAAY,IAAI,EAAE;SAC7B,OAAO,MAAM,CAAC;QACf,MAAM,IAAI,SAAS,YAAY,MAAM,EAAE;SACtC,OAAO,QAAQ,CAAC;QACjB;MACF;KACD,OAAO,QAAQ,CAAC;IACjB;;;;GAID,SAAS,wBAAwB,CAAC,KAAK,EAAE;KACvC,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;KACjC,QAAQ,IAAI;OACV,KAAK,OAAO,CAAC;OACb,KAAK,QAAQ;SACX,OAAO,KAAK,GAAG,IAAI,CAAC;OACtB,KAAK,SAAS,CAAC;OACf,KAAK,MAAM,CAAC;OACZ,KAAK,QAAQ;SACX,OAAO,IAAI,GAAG,IAAI,CAAC;OACrB;SACE,OAAO,IAAI,CAAC;MACf;IACF;;;GAGD,SAAS,YAAY,CAAC,SAAS,EAAE;KAC/B,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;OACzD,OAAO,SAAS,CAAC;MAClB;KACD,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;IACnC;;GAED,cAAc,CAAC,cAAc,GAAGG,gBAAc,CAAC;GAC/C,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC;;GAE1C,OAAO,cAAc,CAAC;EACvB,CAAC;;;CC7hBF;;;;;;;AAOA,CAA2C;GACzC,IAAI,kBAAkB,GAAG,CAAC,OAAO,MAAM,KAAK,UAAU;KACpD,MAAM,CAAC,GAAG;KACV,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;KAC3B,MAAM,CAAC;;GAET,IAAI,cAAc,GAAG,SAAS,MAAM,EAAE;KACpC,OAAO,OAAO,MAAM,KAAK,QAAQ;OAC/B,MAAM,KAAK,IAAI;OACf,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAC;IAC1C,CAAC;;;;GAIF,IAAI,mBAAmB,GAAG,IAAI,CAAC;GAC/B,cAAc,GAAGN,uBAAoC,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;EAC5F,AAIA;;;;CC3BD;;;;;;;CAOA,CAAC,YAAY;;EAGZ,IAAI,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC;;EAE/B,SAAS,UAAU,IAAI;GACtB,IAAI,OAAO,GAAG,EAAE,CAAC;;GAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,EAAE,SAAS;;IAEnB,IAAI,OAAO,GAAG,OAAO,GAAG,CAAC;;IAEzB,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,EAAE;KACjD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;KAC9B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAC1C,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;KAChC,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;MACpB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;OACtC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;OAClB;MACD;KACD;IACD;;GAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;GACzB;;EAED,IAAI,QAAa,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;GACpD,cAAc,GAAG,UAAU,CAAC;GAC5B,MAAM,IAAI,OAAOO,SAAM,KAAK,UAAU,IAAI,OAAOA,SAAM,CAAC,GAAG,KAAK,QAAQ,IAAIA,SAAM,CAAC,GAAG,EAAE;;GAExFA,SAAM,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY;IACpC,OAAO,UAAU,CAAC;IAClB,CAAC,CAAC;GACH,MAAM;GACN,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;GAC/B;EACD,EAAE,EAAE;;;CC9CL;AACA,CAAO,SAASC,WAAT,CAAqBC,KAArB,+BAAoDC,QAApD,2BAA6E;CAClF,OAAK,IAAIC,IAAI,CAAR,EAAWC,SAASH,MAAMG,MAA/B,EAAuCD,IAAIC,MAA3C,EAAmDD,GAAnD,EAAwD;CACtD,QAAID,SAASG,KAAT,CAAeH,QAAf,EAAyB,CAACD,MAAME,CAAN,CAAD,EAAWA,CAAX,EAAcF,KAAd,CAAzB,CAAJ,EAAoD,OAAOA,MAAME,CAAN,CAAP;CACrD;CACF;;AAED,CAAO,SAASG,UAAT,CAAoBC,IAApB,0BAAwC;CAC7C,SAAO,OAAOA,IAAP,KAAgB,UAAhB,IAA8BC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,IAA/B,MAAyC,mBAA9E;CACD;;AAED,CAAO,SAASK,KAAT,CAAeC,GAAf,0BAAkC;CACvC,SAAO,OAAOA,GAAP,KAAe,QAAf,IAA2B,CAACC,MAAMD,GAAN,CAAnC;CACD;;AAED,CAAO,SAASE,GAAT,CAAaC,CAAb,4BAAgC;CACrC,SAAOC,SAASD,CAAT,EAAY,EAAZ,CAAP;CACD;;AAED,CAAO,SAASE,SAAT,CAAmBC,KAAnB,eAAkCC,QAAlC,eAAoDC,aAApD,eAA2E;CAChF,MAAIF,MAAMC,QAAN,CAAJ,EAAqB;CACnB,WAAO,IAAIE,KAAJ,mBAA0BF,QAA1B,mBAAgDC,aAAhD,8CAAP;CACD;CACF;;CCvBD,IAAME,WAAW,CAAC,KAAD,EAAQ,QAAR,EAAkB,GAAlB,EAAuB,IAAvB,CAAjB;AACA,CAAO,SAASC,SAAT,gBAAqD;CAAA,MAAlCC,IAAkC,oFAArB,WAAqB;;CAC1D;CACA;CACA;CACA,MAAI,OAAOC,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,OAAOC,QAAd,KAA2B,WAAhE,EAA6E,OAAO,EAAP;;CAE7E,MAAMC,QAAQF,OAAOC,QAAP,CAAgBE,eAAhB,CAAgCD,KAA9C;;CAEA,MAAIH,QAAQG,KAAZ,EAAmB,OAAO,EAAP;;CAEnB,OAAK,IAAIzB,IAAI,CAAb,EAAgBA,IAAIoB,SAASnB,MAA7B,EAAqCD,GAArC,EAA0C;CACxC,QAAI2B,mBAAmBL,IAAnB,EAAyBF,SAASpB,CAAT,CAAzB,KAAyCyB,KAA7C,EAAoD,OAAOL,SAASpB,CAAT,CAAP;CACrD;;CAED,SAAO,EAAP;CACD;;AAED,CAAO,SAAS2B,kBAAT,CAA4BL,IAA5B,eAA0CM,MAA1C,4BAAkE;CACvE,SAAOA,cAAYA,MAAZ,GAAqBC,iBAAiBP,IAAjB,CAArB,GAAgDA,IAAvD;CACD;;CAMD,SAASO,gBAAT,CAA0BC,GAA1B,4BAA+C;CAC7C,MAAIC,MAAM,EAAV;CACA,MAAIC,mBAAmB,IAAvB;CACA,OAAK,IAAIhC,IAAI,CAAb,EAAgBA,IAAI8B,IAAI7B,MAAxB,EAAgCD,GAAhC,EAAqC;CACnC,QAAIgC,gBAAJ,EAAsB;CACpBD,aAAOD,IAAI9B,CAAJ,EAAOiC,WAAP,EAAP;CACAD,yBAAmB,KAAnB;CACD,KAHD,MAGO,IAAIF,IAAI9B,CAAJ,MAAW,GAAf,EAAoB;CACzBgC,yBAAmB,IAAnB;CACD,KAFM,MAEA;CACLD,aAAOD,IAAI9B,CAAJ,CAAP;CACD;CACF;CACD,SAAO+B,GAAP;CACD;;CAED;CACA;CACA;AACA,qBAAeV,WAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CCxCA,IAAIa,sBAAsB,EAA1B;AACA,CAAO,SAASC,eAAT,CAAyBC,EAAzB,aAAmCC,QAAnC,6BAA8D;CACnE,MAAI,CAACH,mBAAL,EAA0B;CACxBA,0BAAsBrC,YAAY,CAChC,SADgC,EAEhC,uBAFgC,EAGhC,oBAHgC,EAIhC,mBAJgC,EAKhC,kBALgC,CAAZ,EAMnB,UAASyC,MAAT,EAAgB;CACjB;CACA,aAAOnC,WAAWiC,GAAGE,MAAH,CAAX,CAAP;CACD,KATqB,CAAtB;CAUD;;CAED;CACA;CACA,MAAI,CAACnC,WAAWiC,GAAGF,mBAAH,CAAX,CAAL,EAA0C,OAAO,KAAP;;CAE1C;CACA,SAAOE,GAAGF,mBAAH,EAAwBG,QAAxB,CAAP;CACD;;CAED;AACA,CAAO,SAASE,2BAAT,CAAqCH,EAArC,aAA+CC,QAA/C,eAAiEG,QAAjE,2BAA0F;CAC/F,MAAIC,OAAOL,EAAX;CACA,KAAG;CACD,QAAID,gBAAgBM,IAAhB,EAAsBJ,QAAtB,CAAJ,EAAqC,OAAO,IAAP;CACrC,QAAII,SAASD,QAAb,EAAuB,OAAO,KAAP;CACvBC,WAAOA,KAAKC,UAAZ;CACD,GAJD,QAISD,IAJT;;CAMA,SAAO,KAAP;CACD;;AAED,CAAO,SAASE,QAAT,CAAkBP,EAAlB,cAA6BQ,KAA7B,eAA4CC,OAA5C,4BAAqE;CAC1E,MAAI,CAACT,EAAL,EAAS;CAAE;CAAS;CACpB,MAAIA,GAAGU,WAAP,EAAoB;CAClBV,OAAGU,WAAH,CAAe,OAAOF,KAAtB,EAA6BC,OAA7B;CACD,GAFD,MAEO,IAAIT,GAAGW,gBAAP,EAAyB;CAC9BX,OAAGW,gBAAH,CAAoBH,KAApB,EAA2BC,OAA3B,EAAoC,IAApC;CACD,GAFM,MAEA;CACL;CACAT,OAAG,OAAOQ,KAAV,IAAmBC,OAAnB;CACD;CACF;;AAED,CAAO,SAASG,WAAT,CAAqBZ,EAArB,cAAgCQ,KAAhC,eAA+CC,OAA/C,4BAAwE;CAC7E,MAAI,CAACT,EAAL,EAAS;CAAE;CAAS;CACpB,MAAIA,GAAGa,WAAP,EAAoB;CAClBb,OAAGa,WAAH,CAAe,OAAOL,KAAtB,EAA6BC,OAA7B;CACD,GAFD,MAEO,IAAIT,GAAGc,mBAAP,EAA4B;CACjCd,OAAGc,mBAAH,CAAuBN,KAAvB,EAA8BC,OAA9B,EAAuC,IAAvC;CACD,GAFM,MAEA;CACL;CACAT,OAAG,OAAOQ,KAAV,IAAmB,IAAnB;CACD;CACF;;AAED,CAAO,SAASO,WAAT,CAAqBV,IAArB,iCAAgD;CACrD;CACA;CACA,MAAIW,SAASX,KAAKY,YAAlB;CACA,MAAMC,gBAAgBb,KAAKc,aAAL,CAAmBC,WAAnB,CAA+BC,gBAA/B,CAAgDhB,IAAhD,CAAtB;CACAW,YAAUxC,IAAI0C,cAAcI,cAAlB,CAAV;CACAN,YAAUxC,IAAI0C,cAAcK,iBAAlB,CAAV;CACA,SAAOP,MAAP;CACD;;AAED,CAAO,SAASQ,UAAT,CAAoBnB,IAApB,iCAA+C;CACpD;CACA;CACA,MAAIoB,QAAQpB,KAAKqB,WAAjB;CACA,MAAMR,gBAAgBb,KAAKc,aAAL,CAAmBC,WAAnB,CAA+BC,gBAA/B,CAAgDhB,IAAhD,CAAtB;CACAoB,WAASjD,IAAI0C,cAAcS,eAAlB,CAAT;CACAF,WAASjD,IAAI0C,cAAcU,gBAAlB,CAAT;CACA,SAAOH,KAAP;CACD;AACD,CAAO,SAASI,WAAT,CAAqBxB,IAArB,iCAAgD;CACrD,MAAIW,SAASX,KAAKY,YAAlB;CACA,MAAMC,gBAAgBb,KAAKc,aAAL,CAAmBC,WAAnB,CAA+BC,gBAA/B,CAAgDhB,IAAhD,CAAtB;CACAW,YAAUxC,IAAI0C,cAAcY,UAAlB,CAAV;CACAd,YAAUxC,IAAI0C,cAAca,aAAlB,CAAV;CACA,SAAOf,MAAP;CACD;;AAED,CAAO,SAASgB,UAAT,CAAoB3B,IAApB,iCAA+C;CACpD,MAAIoB,QAAQpB,KAAKqB,WAAjB;CACA,MAAMR,gBAAgBb,KAAKc,aAAL,CAAmBC,WAAnB,CAA+BC,gBAA/B,CAAgDhB,IAAhD,CAAtB;CACAoB,WAASjD,IAAI0C,cAAce,WAAlB,CAAT;CACAR,WAASjD,IAAI0C,cAAcgB,YAAlB,CAAT;CACA,SAAOT,KAAP;CACD;;CAED;AACA,CAAO,SAASU,kBAAT,CAA4BC,GAA5B,2CAAqEC,YAArE,0CAAiH;CACtH,MAAMC,SAASD,iBAAiBA,aAAalB,aAAb,CAA2BoB,IAA3D;CACA,MAAMC,mBAAmBF,SAAS,EAACG,MAAM,CAAP,EAAUC,KAAK,CAAf,EAAT,GAA6BL,aAAaM,qBAAb,EAAtD;;CAEA,MAAMC,IAAIR,IAAIS,OAAJ,GAAcR,aAAaS,UAA3B,GAAwCN,iBAAiBC,IAAnE;CACA,MAAMM,IAAIX,IAAIY,OAAJ,GAAcX,aAAaY,SAA3B,GAAuCT,iBAAiBE,GAAlE;;CAEA,SAAO,EAACE,IAAD,EAAIG,IAAJ,EAAP;CACD;;AAED,CAAO,SAASG,kBAAT,CAA4BC,UAA5B,wBAAyDC,cAAzD,mDAAgH;CACrH,MAAMC,cAAcC,eAAeH,UAAf,EAA2BC,cAA3B,EAA2C,IAA3C,CAApB;CACA,4BAAS7D,mBAAmB,WAAnB,EAAgCgE,aAAhC,CAAT,EAA0DF,WAA1D;CACD;;AAED,CAAO,SAASG,kBAAT,CAA4BL,UAA5B,wBAAyDC,cAAzD,mDAAgH;CACrH,MAAMC,cAAcC,eAAeH,UAAf,EAA2BC,cAA3B,EAA2C,EAA3C,CAApB;CACA,SAAOC,WAAP;CACD;AACD,CAAO,SAASC,cAAT,QAAiDF,cAAjD,sCAAgGK,UAAhG,4BAA4H;CAAA,MAAnGb,CAAmG,SAAnGA,CAAmG;CAAA,MAAhGG,CAAgG,SAAhGA,CAAgG;;CACjI,MAAIM,6BAA2BT,CAA3B,GAA+Ba,UAA/B,SAA6CV,CAA7C,GAAiDU,UAAjD,MAAJ;CACA,MAAIL,cAAJ,EAAoB;CAClB,QAAMM,iBAAe,OAAON,eAAeR,CAAtB,KAA4B,QAA7B,GAAyCQ,eAAeR,CAAxD,GAA4DQ,eAAeR,CAAf,GAAmBa,UAA7F,CAAN;CACA,QAAME,iBAAe,OAAOP,eAAeL,CAAtB,KAA4B,QAA7B,GAAyCK,eAAeL,CAAxD,GAA4DK,eAAeL,CAAf,GAAmBU,UAA7F,CAAN;CACAJ,kBAAc,eAAaK,QAAb,UAA0BC,QAA1B,SAAwCN,WAAtD;CACD;CACD,SAAOA,WAAP;CACD;;AAED,CAAO,SAASO,QAAT,CAAkBC,CAAlB,wBAAsCC,UAAtC,yDAA+F;CACpG,SAAQD,EAAEE,aAAF,IAAmBtG,YAAYoG,EAAEE,aAAd,EAA6B;CAAA,WAAKD,eAAeE,EAAEF,UAAtB;CAAA,GAA7B,CAApB,IACCD,EAAEI,cAAF,IAAoBxG,YAAYoG,EAAEI,cAAd,EAA8B;CAAA,WAAKH,eAAeE,EAAEF,UAAtB;CAAA,GAA9B,CAD5B;CAED;;AAED,CAAO,SAASI,kBAAT,CAA4BL,CAA5B,sCAAyD;CAC9D,MAAIA,EAAEE,aAAF,IAAmBF,EAAEE,aAAF,CAAgB,CAAhB,CAAvB,EAA2C,OAAOF,EAAEE,aAAF,CAAgB,CAAhB,EAAmBD,UAA1B;CAC3C,MAAID,EAAEI,cAAF,IAAoBJ,EAAEI,cAAF,CAAiB,CAAjB,CAAxB,EAA6C,OAAOJ,EAAEI,cAAF,CAAiB,CAAjB,EAAoBH,UAA3B;CAC9C;;CAED;CACA;CACA;;CAEA;AACA,CAAO,SAASK,mBAAT,CAA6BC,GAA7B,kBAA6C;CAClD,MAAI,CAACA,GAAL,EAAU;CACV,MAAIC,UAAUD,IAAIE,cAAJ,CAAmB,0BAAnB,CAAd;CACA,MAAI,CAACD,OAAL,EAAc;CACZA,cAAUD,IAAIG,aAAJ,CAAkB,OAAlB,CAAV;CACAF,YAAQG,IAAR,GAAe,UAAf;CACAH,YAAQI,EAAR,GAAa,0BAAb;CACAJ,YAAQK,SAAR,GAAoB,4EAApB;CACAL,YAAQK,SAAR,IAAqB,uEAArB;CACAN,QAAIO,oBAAJ,CAAyB,MAAzB,EAAiC,CAAjC,EAAoCC,WAApC,CAAgDP,OAAhD;CACD;CACD,MAAID,IAAI7B,IAAR,EAAcsC,aAAaT,IAAI7B,IAAjB,EAAuB,uCAAvB;CACf;;AAED,CAAO,SAASuC,sBAAT,CAAgCV,GAAhC,kBAAgD;CACrD,MAAI;CACF,QAAIA,OAAOA,IAAI7B,IAAf,EAAqBwC,gBAAgBX,IAAI7B,IAApB,EAA0B,uCAA1B;CACrB;CACA,QAAI6B,IAAIY,SAAR,EAAmB;CACjB;CACAZ,UAAIY,SAAJ,CAAcC,KAAd;CACD,KAHD,MAGO;CACL9F,aAAO+F,YAAP,GAAsBC,eAAtB,GADK;CAEN;CACF,GATD,CASE,OAAOtB,CAAP,EAAU;CACV;CACD;CACF;;AAED,CAAO,SAASuB,UAAT,gBAAqD;CAAA,MAAjCC,UAAiC,oFAAZ,EAAY;;CAC1D;CACA;CACA;CACEC,iBAAa;CADf,KAEKD,UAFL;CAID;;AAED,CAAO,SAASR,YAAT,CAAsB7E,EAAtB,oBAAuCuF,SAAvC,eAA0D;CAC/D,MAAIvF,GAAGwF,SAAP,EAAkB;CAChBxF,OAAGwF,SAAH,CAAaC,GAAb,CAAiBF,SAAjB;CACD,GAFD,MAEO;CACL,QAAI,CAACvF,GAAGuF,SAAH,CAAaG,KAAb,CAAmB,IAAIC,MAAJ,eAAuBJ,SAAvB,aAAnB,CAAL,EAAqE;CACnEvF,SAAGuF,SAAH,UAAoBA,SAApB;CACD;CACF;CACF;;AAED,CAAO,SAASR,eAAT,CAAyB/E,EAAzB,oBAA0CuF,SAA1C,eAA6D;CAClE,MAAIvF,GAAGwF,SAAP,EAAkB;CAChBxF,OAAGwF,SAAH,CAAaI,MAAb,CAAoBL,SAApB;CACD,GAFD,MAEO;CACLvF,OAAGuF,SAAH,GAAevF,GAAGuF,SAAH,CAAaM,OAAb,CAAqB,IAAIF,MAAJ,eAAuBJ,SAAvB,cAA2C,GAA3C,CAArB,EAAsE,EAAtE,CAAf;CACD;CACF;;;;;;;AC9LD,CAAO,SAASO,gBAAT,CAA0BC,SAA1B,kBAAgDnD,CAAhD,eAA2DG,CAA3D,sCAAwF;CAC7F;CACA,MAAI,CAACgD,UAAUnH,KAAV,CAAgBoH,MAArB,EAA6B,OAAO,CAACpD,CAAD,EAAIG,CAAJ,CAAP;;CAE7B;CAJ6F,MAKxFiD,MALwF,GAK9ED,UAAUnH,KALoE,CAKxFoH,MALwF;;CAM7FA,WAAS,OAAOA,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCC,YAAYD,MAAZ,CAA/C;CACA,MAAM3F,OAAO6F,YAAYH,SAAZ,CAAb;;CAEA,MAAI,OAAOC,MAAP,KAAkB,QAAtB,EAAgC;CAAA,QACvB7E,aADuB,GACNd,IADM,CACvBc,aADuB;;CAE9B,QAAMgF,cAAchF,cAAcC,WAAlC;CACA,QAAIgF,kBAAJ;CACA,QAAIJ,WAAW,QAAf,EAAyB;CACvBI,kBAAY/F,KAAKC,UAAjB;CACD,KAFD,MAEO;CACL8F,kBAAYjF,cAAckF,aAAd,CAA4BL,MAA5B,CAAZ;CACD;CACD,QAAI,EAAEI,qBAAqBD,YAAYG,WAAnC,CAAJ,EAAqD;CACnD,YAAM,IAAIvH,KAAJ,CAAU,sBAAsBiH,MAAtB,GAA+B,8BAAzC,CAAN;CACD;CACD,QAAMO,YAAYJ,YAAY9E,gBAAZ,CAA6BhB,IAA7B,CAAlB;CACA,QAAMmG,iBAAiBL,YAAY9E,gBAAZ,CAA6B+E,SAA7B,CAAvB;CACA;CACAJ,aAAS;CACPvD,YAAM,CAACpC,KAAKoG,UAAN,GAAmBjI,IAAIgI,eAAevE,WAAnB,CAAnB,GAAqDzD,IAAI+H,UAAUG,UAAd,CADpD;CAEPhE,WAAK,CAACrC,KAAKsG,SAAN,GAAkBnI,IAAIgI,eAAe1E,UAAnB,CAAlB,GAAmDtD,IAAI+H,UAAUK,SAAd,CAFjD;CAGPC,aAAO7E,WAAWoE,SAAX,IAAwB5E,WAAWnB,IAAX,CAAxB,GAA2CA,KAAKoG,UAAhD,GACLjI,IAAIgI,eAAetE,YAAnB,CADK,GAC8B1D,IAAI+H,UAAUO,WAAd,CAJ9B;CAKPC,cAAQlF,YAAYuE,SAAZ,IAAyBrF,YAAYV,IAAZ,CAAzB,GAA6CA,KAAKsG,SAAlD,GACNnI,IAAIgI,eAAezE,aAAnB,CADM,GAC8BvD,IAAI+H,UAAUS,YAAd;CAN/B,KAAT;CAQD;;CAED;CACA,MAAI3I,MAAM2H,OAAOa,KAAb,CAAJ,EAAyBjE,IAAIqE,KAAKC,GAAL,CAAStE,CAAT,EAAYoD,OAAOa,KAAnB,CAAJ;CACzB,MAAIxI,MAAM2H,OAAOe,MAAb,CAAJ,EAA0BhE,IAAIkE,KAAKC,GAAL,CAASnE,CAAT,EAAYiD,OAAOe,MAAnB,CAAJ;;CAE1B;CACA,MAAI1I,MAAM2H,OAAOvD,IAAb,CAAJ,EAAwBG,IAAIqE,KAAKE,GAAL,CAASvE,CAAT,EAAYoD,OAAOvD,IAAnB,CAAJ;CACxB,MAAIpE,MAAM2H,OAAOtD,GAAb,CAAJ,EAAuBK,IAAIkE,KAAKE,GAAL,CAASpE,CAAT,EAAYiD,OAAOtD,GAAnB,CAAJ;;CAEvB,SAAO,CAACE,CAAD,EAAIG,CAAJ,CAAP;CACD;;AAED,CAAO,SAASqE,UAAT,CAAoBC,IAApB,yBAA4CC,QAA5C,eAA8DC,QAA9D,sCAAkG;CACvG,MAAM3E,IAAIqE,KAAKO,KAAL,CAAWF,WAAWD,KAAK,CAAL,CAAtB,IAAiCA,KAAK,CAAL,CAA3C;CACA,MAAMtE,IAAIkE,KAAKO,KAAL,CAAWD,WAAWF,KAAK,CAAL,CAAtB,IAAiCA,KAAK,CAAL,CAA3C;CACA,SAAO,CAACzE,CAAD,EAAIG,CAAJ,CAAP;CACD;;AAED,CAAO,SAAS0E,QAAT,CAAkB1B,SAAlB,gCAAiD;CACtD,SAAOA,UAAUnH,KAAV,CAAgB8I,IAAhB,KAAyB,MAAzB,IAAmC3B,UAAUnH,KAAV,CAAgB8I,IAAhB,KAAyB,GAAnE;CACD;;AAED,CAAO,SAASC,QAAT,CAAkB5B,SAAlB,gCAAiD;CACtD,SAAOA,UAAUnH,KAAV,CAAgB8I,IAAhB,KAAyB,MAAzB,IAAmC3B,UAAUnH,KAAV,CAAgB8I,IAAhB,KAAyB,GAAnE;CACD;;CAED;AACA,CAAO,SAASE,kBAAT,CAA4B/D,CAA5B,wBAAgDgE,eAAhD,gBAA0EC,aAA1E,6CAA0H;CAC/H,MAAMC,WAAW,OAAOF,eAAP,KAA2B,QAA3B,GAAsCjE,SAASC,CAAT,EAAYgE,eAAZ,CAAtC,GAAqE,IAAtF;CACA,MAAI,OAAOA,eAAP,KAA2B,QAA3B,IAAuC,CAACE,QAA5C,EAAsD,OAAO,IAAP,CAFyE;CAG/H,MAAM1H,OAAO6F,YAAY4B,aAAZ,CAAb;CACA;CACA,MAAMzF,eAAeyF,cAAclJ,KAAd,CAAoByD,YAApB,IAAoChC,KAAKgC,YAAzC,IAAyDhC,KAAKc,aAAL,CAAmBoB,IAAjG;CACA,SAAOJ,mBAAmB4F,YAAYlE,CAA/B,EAAkCxB,YAAlC,CAAP;CACD;;CAED;AACA,CAAO,SAAS2F,cAAT,CAAwBjC,SAAxB,sBAAkDnD,CAAlD,eAA6DG,CAA7D,mCAAuF;CAC5F,MAAMkF,QAAQlC,UAAUkC,KAAxB;CACA,MAAMC,UAAU,CAAC7J,MAAM4J,MAAME,KAAZ,CAAjB;CACA,MAAM9H,OAAO6F,YAAYH,SAAZ,CAAb;;CAEA,MAAImC,OAAJ,EAAa;CACX;CACA,WAAO;CACL7H,gBADK;CAEL+H,cAAQ,CAFH,EAEMC,QAAQ,CAFd;CAGLF,aAAOvF,CAHF,EAGK0F,OAAOvF,CAHZ;CAILH,UAJK,EAIFG;CAJE,KAAP;CAMD,GARD,MAQO;CACL;CACA,WAAO;CACL1C,gBADK;CAEL+H,cAAQxF,IAAIqF,MAAME,KAFb,EAEoBE,QAAQtF,IAAIkF,MAAMK,KAFtC;CAGLH,aAAOF,MAAME,KAHR,EAGeG,OAAOL,MAAMK,KAH5B;CAIL1F,UAJK,EAIFG;CAJE,KAAP;CAMD;CACF;;CAED;AACA,CAAO,SAASwF,mBAAT,CAA6BxC,SAA7B,kBAAmDyC,QAAnD,0CAA2F;CAChG,MAAMC,QAAQ1C,UAAUnH,KAAV,CAAgB6J,KAA9B;CACA,SAAO;CACLpI,UAAMmI,SAASnI,IADV;CAELuC,OAAGmD,UAAUkC,KAAV,CAAgBrF,CAAhB,GAAqB4F,SAASJ,MAAT,GAAkBK,KAFrC;CAGL1F,OAAGgD,UAAUkC,KAAV,CAAgBlF,CAAhB,GAAqByF,SAASH,MAAT,GAAkBI,KAHrC;CAILL,YAASI,SAASJ,MAAT,GAAkBK,KAJtB;CAKLJ,YAASG,SAASH,MAAT,GAAkBI,KALtB;CAMLN,WAAOpC,UAAUkC,KAAV,CAAgBrF,CANlB;CAOL0F,WAAOvC,UAAUkC,KAAV,CAAgBlF;CAPlB,GAAP;CASD;;CAED;CACA,SAASkD,WAAT,CAAqBD,MAArB,4BAA6C;CAC3C,SAAO;CACLvD,UAAMuD,OAAOvD,IADR;CAELC,SAAKsD,OAAOtD,GAFP;CAGLmE,WAAOb,OAAOa,KAHT;CAILE,YAAQf,OAAOe;CAJV,GAAP;CAMD;;CAED,SAASb,WAAT,CAAqBH,SAArB,oDAAwE;CACtE,MAAM1F,OAAOqI,SAASxC,WAAT,CAAqBH,SAArB,CAAb;CACA,MAAI,CAAC1F,IAAL,EAAW;CACT,UAAM,IAAItB,KAAJ,CAAU,0CAAV,CAAN;CACD;CACD;CACA,SAAOsB,IAAP;CACD;;CCrID;AACA,CAAe,SAASsI,GAAT,GAA2B;AAAA,CAEzC;;;;;CCSD;;CACA,IAAMC,YAAY;CAChBC,SAAO;CACLC,WAAO,YADF;CAELC,UAAM,WAFD;CAGLC,UAAM;CAHD,GADS;CAMhBC,SAAO;CACLH,WAAO,WADF;CAELC,UAAM,WAFD;CAGLC,UAAM;CAHD;CANS,CAAlB;;CAaA;CACA,IAAIE,eAAeN,UAAUK,KAA7B;;;;;;;;;;;;;;;;;;;;;;;;;CA2CA;CACA;CACA;CACA;CACA;CACA;;;;;;;;;;;;;;;;;KAEqBE;;;;;;;;;;;;;;oMA0InBlB,QAAQ;CACNmB,gBAAU,KADJ;CAEN;CACAjB,aAAOkB,GAHD,EAGMf,OAAOe,GAHb;CAINxB,uBAAiB;CAJX,aAqBRyB,kBAAiD,UAACzF,CAAD,EAAO;CACtD;CACA,YAAKjF,KAAL,CAAW2K,WAAX,CAAuB1F,CAAvB;;CAEA;CACA,UAAI,CAAC,MAAKjF,KAAL,CAAW4K,aAAZ,IAA6B,OAAO3F,EAAE4F,MAAT,KAAoB,QAAjD,IAA6D5F,EAAE4F,MAAF,KAAa,CAA9E,EAAiF,OAAO,KAAP;;CAEjF;CACA,UAAMC,WAAWhB,SAASxC,WAAT,OAAjB;CACA,UAAI,CAACwD,QAAD,IAAa,CAACA,SAASvI,aAAvB,IAAwC,CAACuI,SAASvI,aAAT,CAAuBoB,IAApE,EAA0E;CACxE,cAAM,IAAIxD,KAAJ,CAAU,2CAAV,CAAN;CACD;CAXqD,UAY/CoC,aAZ+C,GAY9BuI,QAZ8B,CAY/CvI,aAZ+C;;CActD;;CACA,UAAI,MAAKvC,KAAL,CAAW+K,QAAX,IACD,EAAE9F,EAAE+F,MAAF,YAAoBzI,cAAcC,WAAd,CAA0ByI,IAAhD,CADC,IAED,MAAKjL,KAAL,CAAWkL,MAAX,IAAqB,CAAC3J,4BAA4B0D,EAAE+F,MAA9B,EAAsC,MAAKhL,KAAL,CAAWkL,MAAjD,EAAyDJ,QAAzD,CAFrB,IAGD,MAAK9K,KAAL,CAAWmL,MAAX,IAAqB5J,4BAA4B0D,EAAE+F,MAA9B,EAAsC,MAAKhL,KAAL,CAAWmL,MAAjD,EAAyDL,QAAzD,CAHxB,EAG6F;CAC3F;CACD;;CAED;CACA;CACA;CACA,UAAM7B,kBAAkB3D,mBAAmBL,CAAnB,CAAxB;CACA,YAAKmG,QAAL,CAAc,EAACnC,gCAAD,EAAd;;CAEA;CACA,UAAMoC,WAAWrC,mBAAmB/D,CAAnB,EAAsBgE,eAAtB,QAAjB;CACA,UAAIoC,YAAY,IAAhB,EAAsB,OA9BgC;CAAA,UA+B/CrH,CA/B+C,GA+BvCqH,QA/BuC,CA+B/CrH,CA/B+C;CAAA,UA+B5CG,CA/B4C,GA+BvCkH,QA/BuC,CA+B5ClH,CA/B4C;;CAiCtD;;CACA,UAAMmH,YAAYlC,sBAAqBpF,CAArB,EAAwBG,CAAxB,CAAlB;;CAIA;CACA4F,UAAI,SAAJ,EAAe,MAAK/J,KAAL,CAAWuL,OAA1B;CACA,UAAMC,eAAe,MAAKxL,KAAL,CAAWuL,OAAX,CAAmBtG,CAAnB,EAAsBqG,SAAtB,CAArB;CACA,UAAIE,iBAAiB,KAArB,EAA4B;;CAE5B;CACA;CACA,UAAI,MAAKxL,KAAL,CAAWyL,oBAAf,EAAqClG,oBAAoBhD,aAApB;;CAErC;CACA;CACA;CACA,YAAK6I,QAAL,CAAc;CACZZ,kBAAU,IADE;;CAGZjB,eAAOvF,CAHK;CAIZ0F,eAAOvF;CAJK,OAAd;;CAOA;CACA;CACA;CACAxC,eAASY,aAAT,EAAwB+H,aAAaH,IAArC,EAA2C,MAAKuB,UAAhD;CACA/J,eAASY,aAAT,EAAwB+H,aAAaF,IAArC,EAA2C,MAAKuB,cAAhD;CACD,aAEDD,aAA4C,UAACzG,CAAD,EAAO;;CAEjD;CACA,UAAIA,EAAEW,IAAF,KAAW,WAAf,EAA4BX,EAAE2G,cAAF;;CAE5B;CACA,UAAMP,WAAWrC,mBAAmB/D,CAAnB,EAAsB,MAAKoE,KAAL,CAAWJ,eAAjC,QAAjB;CACA,UAAIoC,YAAY,IAAhB,EAAsB;CAP2B,UAQ5CrH,CAR4C,GAQpCqH,QARoC,CAQ5CrH,CAR4C;CAAA,UAQzCG,CARyC,GAQpCkH,QARoC,CAQzClH,CARyC;;CAUjD;;CACA,UAAI0H,MAAMC,OAAN,CAAc,MAAK9L,KAAL,CAAWyI,IAAzB,CAAJ,EAAoC;CAClC,YAAIe,UAASxF,IAAI,MAAKqF,KAAL,CAAWE,KAA5B;CAAA,YAAmCE,UAAStF,IAAI,MAAKkF,KAAL,CAAWK,KAA3D;;CADkC,0BAEflB,WAAW,MAAKxI,KAAL,CAAWyI,IAAtB,EAA4Be,OAA5B,EAAoCC,OAApC,CAFe;;CAAA;;CAEjCD,eAFiC;CAEzBC,eAFyB;;CAGlC,YAAI,CAACD,OAAD,IAAW,CAACC,OAAhB,EAAwB,OAHU;CAIlCzF,YAAI,MAAKqF,KAAL,CAAWE,KAAX,GAAmBC,OAAvB,EAA+BrF,IAAI,MAAKkF,KAAL,CAAWK,KAAX,GAAmBD,OAAtD;CACD;;CAED,UAAM6B,YAAYlC,sBAAqBpF,CAArB,EAAwBG,CAAxB,CAAlB;;CAIA;CACA,UAAMqH,eAAe,MAAKxL,KAAL,CAAW+L,MAAX,CAAkB9G,CAAlB,EAAqBqG,SAArB,CAArB;CACA,UAAIE,iBAAiB,KAArB,EAA4B;CAC1B,YAAI;CACF;CACA,gBAAKG,cAAL,CAAoB,IAAIK,UAAJ,CAAe,SAAf,CAApB;CACD,SAHD,CAGE,OAAOC,GAAP,EAAY;CACZ;CACA,cAAMrK,UAAUpB,SAAS0L,WAAT,CAAqB,aAArB,CAAV,kCAAN;CACA;CACA;CACAtK,gBAAMuK,cAAN,CAAqB,SAArB,EAAgC,IAAhC,EAAsC,IAAtC,EAA4C5L,MAA5C,EAAoD,CAApD,EAAuD,CAAvD,EAA0D,CAA1D,EAA6D,CAA7D,EAAgE,CAAhE,EAAmE,KAAnE,EAA0E,KAA1E,EAAiF,KAAjF,EAAwF,KAAxF,EAA+F,CAA/F,EAAkG,IAAlG;CACA,gBAAKoL,cAAL,CAAoB/J,KAApB;CACD;CACD;CACD;;CAED,YAAKwJ,QAAL,CAAc;CACZ7B,eAAOvF,CADK;CAEZ0F,eAAOvF;CAFK,OAAd;CAID,aAEDwH,iBAAgD,UAAC1G,CAAD,EAAO;CACrD,UAAI,CAAC,MAAKoE,KAAL,CAAWmB,QAAhB,EAA0B;;CAE1B,UAAMa,WAAWrC,mBAAmB/D,CAAnB,EAAsB,MAAKoE,KAAL,CAAWJ,eAAjC,QAAjB;CACA,UAAIoC,YAAY,IAAhB,EAAsB;CAJ+B,UAK9CrH,CAL8C,GAKtCqH,QALsC,CAK9CrH,CAL8C;CAAA,UAK3CG,CAL2C,GAKtCkH,QALsC,CAK3ClH,CAL2C;;CAMrD,UAAMmH,YAAYlC,sBAAqBpF,CAArB,EAAwBG,CAAxB,CAAlB;;CAEA,UAAM2G,WAAWhB,SAASxC,WAAT,OAAjB;CACA,UAAIwD,QAAJ,EAAc;CACZ;CACA,YAAI,MAAK9K,KAAL,CAAWyL,oBAAf,EAAqCvF,uBAAuB4E,SAASvI,aAAhC;CACtC;;CAID;CACA,YAAK6I,QAAL,CAAc;CACZZ,kBAAU,KADE;CAEZjB,eAAOkB,GAFK;CAGZf,eAAOe;CAHK,OAAd;;CAMA;CACA,YAAKzK,KAAL,CAAWoM,MAAX,CAAkBnH,CAAlB,EAAqBqG,SAArB;;CAEA,UAAIR,QAAJ,EAAc;AACZ,CAEA9I,oBAAY8I,SAASvI,aAArB,EAAoC+H,aAAaH,IAAjD,EAAuD,MAAKuB,UAA5D;CACA1J,oBAAY8I,SAASvI,aAArB,EAAoC+H,aAAaF,IAAjD,EAAuD,MAAKuB,cAA5D;CACD;CACF,aAEDhB,cAA6C,UAAC1F,CAAD,EAAO;CAClDqF,qBAAeN,UAAUK,KAAzB,CADkD;;CAGlD,aAAO,MAAKK,eAAL,CAAqBzF,CAArB,CAAP;CACD,aAEDoH,YAA2C,UAACpH,CAAD,EAAO;CAChDqF,qBAAeN,UAAUK,KAAzB;;CAEA,aAAO,MAAKsB,cAAL,CAAoB1G,CAApB,CAAP;CACD,aAGDqH,eAA8C,UAACrH,CAAD,EAAO;CACnD;CACAqF,qBAAeN,UAAUC,KAAzB;;CAEA,aAAO,MAAKS,eAAL,CAAqBzF,CAArB,CAAP;CACD,aAEDsH,aAA4C,UAACtH,CAAD,EAAO;CACjD;CACAqF,qBAAeN,UAAUC,KAAzB;;CAEA,aAAO,MAAK0B,cAAL,CAAoB1G,CAApB,CAAP;CACD;;;;;4CAtLsB;CACrB;CACA;CACA,UAAM6F,WAAWhB,SAASxC,WAAT,CAAqB,IAArB,CAAjB;CACA,UAAIwD,QAAJ,EAAc;CAAA,YACLvI,aADK,GACYuI,QADZ,CACLvI,aADK;;CAEZP,oBAAYO,aAAZ,EAA2ByH,UAAUK,KAAV,CAAgBF,IAA3C,EAAiD,KAAKuB,UAAtD;CACA1J,oBAAYO,aAAZ,EAA2ByH,UAAUC,KAAV,CAAgBE,IAA3C,EAAiD,KAAKuB,UAAtD;CACA1J,oBAAYO,aAAZ,EAA2ByH,UAAUK,KAAV,CAAgBD,IAA3C,EAAiD,KAAKuB,cAAtD;CACA3J,oBAAYO,aAAZ,EAA2ByH,UAAUC,KAAV,CAAgBG,IAA3C,EAAiD,KAAKuB,cAAtD;CACA,YAAI,KAAK3L,KAAL,CAAWyL,oBAAf,EAAqCvF,uBAAuB3D,aAAvB;CACtC;CACF;;CA6JD;;;;8BAeS;CACP;CACA;CACA,aAAOiK,MAAMC,YAAN,CAAmBD,MAAME,QAAN,CAAeC,IAAf,CAAoB,KAAK3M,KAAL,CAAW4M,QAA/B,CAAnB,EAA6D;CAClEnM,eAAO+F,WAAW,KAAKxG,KAAL,CAAW4M,QAAX,CAAoB5M,KAApB,CAA0BS,KAArC,CAD2D;;CAGlE;CACA;CACAkK,qBAAa,KAAKA,WALgD;CAMlE2B,sBAAc,KAAKA,YAN+C;CAOlED,mBAAW,KAAKA,SAPkD;CAQlEE,oBAAY,KAAKA;CARiD,OAA7D,CAAP;CAUD;;;GAtVwCC,MAAMK;;CAA5BtC,cAEZuC,cAAc;CAFFvC,cAIZwC,YAAY;CACjB;;;;;;CAMAnC,iBAAeoC,UAAUC,IAPR;;CASjB;;;;CAIAlC,YAAUiC,UAAUC,IAbH;;CAejB;;;;;CAKAxB,wBAAsBuB,UAAUC,IApBf;;CAsBjB;;;;CAIAxJ,gBAAc,sBAASzD,KAAT,2BAAoCC,QAApC,kCAAyE;CACrF,QAAID,MAAMC,QAAN,KAAmBD,MAAMC,QAAN,EAAgBiN,QAAhB,KAA6B,CAApD,EAAuD;CACrD,YAAM,IAAI/M,KAAJ,CAAU,+CAAV,CAAN;CACD;CACF,GA9BgB;;CAgCjB;;;CAGAsI,QAAMuE,UAAUG,OAAV,CAAkBH,UAAUI,MAA5B,CAnCW;;CAqCjB;;;;CAIAvD,SAAOmD,UAAUI,MAzCA;;CA2CjB;;;;;;;;;;;;;;;;;;;;CAoBAlC,UAAQ8B,UAAUK,MA/DD;;CAiEjB;;;;;;;;;;;;;;;;;;;;CAoBAlC,UAAQ6B,UAAUK,MArFD;;CAuFjB;;;;CAIA9B,WAASyB,UAAU5N,IA3FF;;CA6FjB;;;;CAIA2M,UAAQiB,UAAU5N,IAjGD;;CAmGjB;;;;CAIAgN,UAAQY,UAAU5N,IAvGD;;CAyGjB;;;;CAIAuL,eAAaqC,UAAU5N,IA7GN;;CA+GjB;;;CAGAuH,aAAW5G,SAlHM;CAmHjBU,SAAOV,SAnHU;CAoHjBuN,aAAWvN;CApHM;CAJAwK,cA2HZgD,eAAe;CACpB3C,iBAAe,KADK;CAEpBO,UAAQ,IAFY;CAGpBJ,YAAU,KAHU;CAIpBU,wBAAsB,IAJF;CAKpBhI,gBAAc,IALM;CAMpByH,UAAQ,IANY;CAOpBzC,QAAM,IAPc;CAQpB6E,aAAW,IARS;CASpB/B,WAAS,mBAAU,EATC;CAUpBQ,UAAQ,kBAAU,EAVE;CAWpBK,UAAQ,kBAAU,EAXE;CAYpBzB,eAAa,uBAAU;CAZH;;;;;;;;;;;;;CCtKxB;CACA;CACA;;;;;;;;;;;;;;;KAEqB6C;;;CAuInB,qBAAYxN,KAAZ,uBAAmC;CAAA;;CAAA,qHAC3BA,KAD2B;;CAAA,UAoDnCyN,WApDmC,GAoDE,UAACxI,CAAD,EAAI2E,QAAJ,EAAiB;AACpDG;CAEA;CACA,UAAM2D,cAAc,MAAK1N,KAAL,CAAWuL,OAAX,CAAmBtG,CAAnB,EAAsB0E,2BAA0BC,QAA1B,CAAtB,CAApB;CACA;CACA,UAAI8D,gBAAgB,KAApB,EAA2B,OAAO,KAAP;;CAE3B,YAAKtC,QAAL,CAAc,EAACZ,UAAU,IAAX,EAAiBmD,SAAS,IAA1B,EAAd;CACD,KA7DkC;;CAAA,UA+DnC5B,MA/DmC,GA+DH,UAAC9G,CAAD,EAAI2E,QAAJ,EAAiB;CAC/C,UAAI,CAAC,MAAKP,KAAL,CAAWmB,QAAhB,EAA0B,OAAO,KAAP;AAC1BT;CAEA,UAAM6D,SAASjE,2BAA0BC,QAA1B,CAAf;;CAEA,UAAMiE,wCAAmC;CACvC7J,WAAG4J,OAAO5J,CAD6B;CAEvCG,WAAGyJ,OAAOzJ;CAF6B,OAAzC;;CAKA;CACA,UAAI,MAAKnE,KAAL,CAAWoH,MAAf,EAAuB;CACrB;CADqB,YAEdpD,EAFc,GAEN6J,QAFM,CAEd7J,CAFc;CAAA,YAEXG,EAFW,GAEN0J,QAFM,CAEX1J,CAFW;;CAIrB;CACA;CACA;;CACA0J,iBAAS7J,CAAT,IAAc,MAAKqF,KAAL,CAAWyE,MAAzB;CACAD,iBAAS1J,CAAT,IAAc,MAAKkF,KAAL,CAAW0E,MAAzB;;CAEA;;CAVqB,gCAWU7G,wBAAuB2G,SAAS7J,CAAhC,EAAmC6J,SAAS1J,CAA5C,CAXV;CAAA;CAAA,YAWd6J,SAXc;CAAA,YAWHC,SAXG;;CAYrBJ,iBAAS7J,CAAT,GAAagK,SAAb;CACAH,iBAAS1J,CAAT,GAAa8J,SAAb;;CAEA;CACAJ,iBAASC,MAAT,GAAkB,MAAKzE,KAAL,CAAWyE,MAAX,IAAqB9J,KAAI6J,SAAS7J,CAAlC,CAAlB;CACA6J,iBAASE,MAAT,GAAkB,MAAK1E,KAAL,CAAW0E,MAAX,IAAqB5J,KAAI0J,SAAS1J,CAAlC,CAAlB;;CAEA;CACAyJ,eAAO5J,CAAP,GAAW6J,SAAS7J,CAApB;CACA4J,eAAOzJ,CAAP,GAAW0J,SAAS1J,CAApB;CACAyJ,eAAOpE,MAAP,GAAgBqE,SAAS7J,CAAT,GAAa,MAAKqF,KAAL,CAAWrF,CAAxC;CACA4J,eAAOnE,MAAP,GAAgBoE,SAAS1J,CAAT,GAAa,MAAKkF,KAAL,CAAWlF,CAAxC;CACD;;CAED;CACA,UAAMqH,eAAe,MAAKxL,KAAL,CAAW+L,MAAX,CAAkB9G,CAAlB,EAAqB2I,MAArB,CAArB;CACA,UAAIpC,iBAAiB,KAArB,EAA4B,OAAO,KAAP;;CAE5B,YAAKJ,QAAL,CAAcyC,QAAd;CACD,KA1GkC;;CAAA,UA4GnCK,UA5GmC,GA4GC,UAACjJ,CAAD,EAAI2E,QAAJ,EAAiB;CACnD,UAAI,CAAC,MAAKP,KAAL,CAAWmB,QAAhB,EAA0B,OAAO,KAAP;;CAE1B;CACA,UAAM2D,aAAa,MAAKnO,KAAL,CAAWoM,MAAX,CAAkBnH,CAAlB,EAAqB0E,2BAA0BC,QAA1B,CAArB,CAAnB;CACA,UAAIuE,eAAe,KAAnB,EAA0B,OAAO,KAAP;;CAI1B,UAAMN,wCAAmC;CACvCrD,kBAAU,KAD6B;CAEvCsD,gBAAQ,CAF+B;CAGvCC,gBAAQ;CAH+B,OAAzC;;CAMA;CACA;CACA,UAAMK,aAAaC,QAAQ,MAAKrO,KAAL,CAAWqL,QAAnB,CAAnB;CACA,UAAI+C,UAAJ,EAAgB;CAAA,mCACC,MAAKpO,KAAL,CAAWqL,QADZ;CAAA,YACPrH,GADO,wBACPA,CADO;CAAA,YACJG,GADI,wBACJA,CADI;;CAEd0J,iBAAS7J,CAAT,GAAaA,GAAb;CACA6J,iBAAS1J,CAAT,GAAaA,GAAb;CACD;;CAED,YAAKiH,QAAL,CAAcyC,QAAd;CACD,KArIkC;;CAGjC,UAAKxE,KAAL,GAAa;CACX;CACAmB,gBAAU,KAFC;;CAIX;CACAmD,eAAS,KALE;;CAOX;CACA3J,SAAGhE,MAAMqL,QAAN,GAAiBrL,MAAMqL,QAAN,CAAerH,CAAhC,GAAoChE,MAAMsO,eAAN,CAAsBtK,CARlD;CASXG,SAAGnE,MAAMqL,QAAN,GAAiBrL,MAAMqL,QAAN,CAAelH,CAAhC,GAAoCnE,MAAMsO,eAAN,CAAsBnK,CATlD;;CAWX;CACA2J,cAAQ,CAZG,EAYAC,QAAQ,CAZR;;CAcX;CACAQ,oBAAc;CAfH,KAAb;;CAkBA,QAAIvO,MAAMqL,QAAN,IAAkB,EAAErL,MAAM+L,MAAN,IAAgB/L,MAAMoM,MAAxB,CAAtB,EAAuD;CACrD;CACAoC,cAAQC,IAAR,CAAa,8FACX,uGADW,GAEX,6BAFF;CAGD;CA1BgC;CA2BlC;;;;yCAEmB;CAClB;CACA,UAAG,OAAOlO,OAAOmO,UAAd,KAA6B,WAA7B,IAA4C5E,SAASxC,WAAT,CAAqB,IAArB,aAAsC/G,OAAOmO,UAA5F,EAAwG;CACtG,aAAKtD,QAAL,CAAc,EAAEmD,cAAc,IAAhB,EAAd;CACD;CACF;;;+CAEyBI,wBAAmB;CAC3C;CACA,UAAIA,UAAUtD,QAAV,KACC,CAAC,KAAKrL,KAAL,CAAWqL,QAAZ,IACCsD,UAAUtD,QAAV,CAAmBrH,CAAnB,KAAyB,KAAKhE,KAAL,CAAWqL,QAAX,CAAoBrH,CAD9C,IAEC2K,UAAUtD,QAAV,CAAmBlH,CAAnB,KAAyB,KAAKnE,KAAL,CAAWqL,QAAX,CAAoBlH,CAH/C,CAAJ,EAKI;CACF,aAAKiH,QAAL,CAAc,EAAEpH,GAAG2K,UAAUtD,QAAV,CAAmBrH,CAAxB,EAA2BG,GAAGwK,UAAUtD,QAAV,CAAmBlH,CAAjD,EAAd;CACD;CACF;;;4CAEsB;CACrB,WAAKiH,QAAL,CAAc,EAACZ,UAAU,KAAX,EAAd,EADqB;CAEtB;;;sDAqF2B;CAAA;;CAC1B,UAAI/J,QAAQ,EAAZ;CAAA,UAAgBmO,eAAe,IAA/B;;CAEA;CACA,UAAMR,aAAaC,QAAQ,KAAKrO,KAAL,CAAWqL,QAAnB,CAAnB;CACA,UAAMlE,YAAY,CAACiH,UAAD,IAAe,KAAK/E,KAAL,CAAWmB,QAA5C;;CAEA,UAAMa,WAAW,KAAKrL,KAAL,CAAWqL,QAAX,IAAuB,KAAKrL,KAAL,CAAWsO,eAAnD;CACA,UAAMO,gBAAgB;CACpB;CACA7K,WAAG6E,SAAS,IAAT,KAAkB1B,SAAlB,GACD,KAAKkC,KAAL,CAAWrF,CADV,GAEDqH,SAASrH,CAJS;;CAMpB;CACAG,WAAG4E,SAAS,IAAT,KAAkB5B,SAAlB,GACD,KAAKkC,KAAL,CAAWlF,CADV,GAEDkH,SAASlH;CATS,OAAtB;;CAYA;CACA,UAAI,KAAKkF,KAAL,CAAWkF,YAAf,EAA6B;CAC3BK,uBAAehK,mBAAmBiK,aAAnB,EAAkC,KAAK7O,KAAL,CAAWwE,cAA7C,CAAf;CACD,OAFD,MAEO;CACL;CACA;CACA;CACA;CACA/D,gBAAQ6D,mBAAmBuK,aAAnB,EAAkC,KAAK7O,KAAL,CAAWwE,cAA7C,CAAR;CACD;;CA7ByB,mBAmCtB,KAAKxE,KAnCiB;CAAA,UAgCxB8O,gBAhCwB,UAgCxBA,gBAhCwB;CAAA,UAiCxBC,wBAjCwB,UAiCxBA,wBAjCwB;CAAA,UAkCxBC,uBAlCwB,UAkCxBA,uBAlCwB;;;CAqC1B,UAAMpC,WAAWJ,MAAME,QAAN,CAAeC,IAAf,CAAoB,KAAK3M,KAAL,CAAW4M,QAA/B,CAAjB;;CAEA;CACA,UAAMjG,YAAYsI,WAAYrC,SAAS5M,KAAT,CAAe2G,SAAf,IAA4B,EAAxC,EAA6CmI,gBAA7C,iDACfC,wBADe,EACY,KAAK1F,KAAL,CAAWmB,QADvB,+BAEfwE,uBAFe,EAEW,KAAK3F,KAAL,CAAWsE,OAFtB,gBAAlB;;CAKA;CACA;CACA,aACE;CAAC,qBAAD;CAAA,qBAAmB,KAAK3N,KAAxB,IAA+B,SAAS,KAAKyN,WAA7C,EAA0D,QAAQ,KAAK1B,MAAvE,EAA+E,QAAQ,KAAKmC,UAA5F;CACG1B,cAAMC,YAAN,CAAmBG,QAAnB,EAA6B;CAC5BjG,qBAAWA,SADiB;CAE5BlG,8BAAWmM,SAAS5M,KAAT,CAAeS,KAA1B,EAAoCA,KAApC,CAF4B;CAG5B6M,qBAAWsB;CAHiB,SAA7B;CADH,OADF;CASD;;;GAtUoCpC,MAAMK;;CAAxBW,UAEZV,cAAc;CAFFU,UAIZT,yBAEFxC,cAAcwC;;CAEjB;;;;;;;;;;;;;CAaAjE,QAAMkE,UAAUkC,KAAV,CAAgB,CAAC,MAAD,EAAS,GAAT,EAAc,GAAd,EAAmB,MAAnB,CAAhB;;CAEN;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BA9H,UAAQ4F,UAAUmC,SAAV,CAAoB,CAC1BnC,UAAUoC,KAAV,CAAgB;CACdvL,UAAMmJ,UAAUI,MADF;CAEdnF,WAAO+E,UAAUI,MAFH;CAGdtJ,SAAKkJ,UAAUI,MAHD;CAIdjF,YAAQ6E,UAAUI;CAJJ,GAAhB,CAD0B,EAO1BJ,UAAUK,MAPgB,EAQ1BL,UAAUkC,KAAV,CAAgB,CAAC,KAAD,CAAhB,CAR0B,CAApB;;CAWRJ,oBAAkB9B,UAAUK;CAC5B0B,4BAA0B/B,UAAUK;CACpC2B,2BAAyBhC,UAAUK;;CAEnC;;;;;;;;;;;;;;;;;CAiBAiB,mBAAiBtB,UAAUoC,KAAV,CAAgB;CAC/BpL,OAAGgJ,UAAUI,MADkB;CAE/BjJ,OAAG6I,UAAUI;CAFkB,GAAhB;CAIjB5I,kBAAgBwI,UAAUoC,KAAV,CAAgB;CAC9BpL,OAAGgJ,UAAUmC,SAAV,CAAoB,CAACnC,UAAUI,MAAX,EAAmBJ,UAAUK,MAA7B,CAApB,CAD2B;CAE9BlJ,OAAG6I,UAAUmC,SAAV,CAAoB,CAACnC,UAAUI,MAAX,EAAmBJ,UAAUK,MAA7B,CAApB;CAF2B,GAAhB;;CAKhB;;;;;;;;;;;;;;;;;;;;CAoBAhC,YAAU2B,UAAUoC,KAAV,CAAgB;CACxBpL,OAAGgJ,UAAUI,MADW;CAExBjJ,OAAG6I,UAAUI;CAFW,GAAhB;;CAKV;;;CAGAzG,aAAW5G;CACXU,SAAOV;CACPuN,aAAWvN;;CAxHMyN,UA2HZD,4BACFhD,cAAcgD;CACjBzE,QAAM;CACN1B,UAAQ;CACR0H,oBAAkB;CAClBC,4BAA0B;CAC1BC,2BAAyB;CACzBV,mBAAiB,EAACtK,GAAG,CAAJ,EAAOG,GAAG,CAAV;CACjBkH,YAAU;CACVxB,SAAO;;;CCxKX;CACA;CACA;CACA;CACA2D,UAAU6B,OAAV,GAAoB7B,SAApB;CACAA,UAAUjD,aAAV,GAA0BA,aAA1B;;;;;;;;"} \ No newline at end of file diff --git a/dist/react-draggable.min.js b/dist/react-draggable.min.js deleted file mode 100644 index d4096b43..00000000 --- a/dist/react-draggable.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var V={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},B=V.mouse,H=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!M(e.target,o.props.handle,n)||o.props.cancel&&M(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=L(e,a,o);if(null!=i){var s=i.x,u=i.y,l=A(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&X(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,B.move,o.handleDrag),C(r,B.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=L(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=A(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=L(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=A(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&Y(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,B.move,o.handleDrag),j(s.ownerDocument,B.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return B=V.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return B=V.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return B=V.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return B=V.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,V.mouse.move,this.handleDrag),j(n,V.touch.move,this.handleDrag),j(n,V.mouse.stop,this.handleDragStop),j(n,V.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&Y(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);H.displayName="DraggableCore",H.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},H.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var W=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,U(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=U(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=_(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,U(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},!t.position||t.onDrag||t.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),e}return T(r,n),D(r,[{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o={},a=null,i=!Boolean(this.props.position)||this.state.dragging,s=this.props.position||this.props.defaultPosition,u={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&i?this.state.x:s.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&i?this.state.y:s.y};this.state.isElementSVG?(n=u,r=this.props.positionOffset,a=R(n,r,"")):o=function(t,e){var n=R(t,e,"px");return x({},v("transform",w),n)}(u,this.props.positionOffset);var l=this.props,c=l.defaultClassName,p=l.defaultClassNameDragging,d=l.defaultClassNameDragged,g=e.Children.only(this.props.children),h=f(g.props.className||"",c,(x(t={},p,this.state.dragging),x(t,d,this.state.dragged),t));return e.createElement(H,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(g,{className:h,style:O({},g.props.style,o),transform:a}))}}]),r}(e.Component);return W.displayName="Draggable",W.propTypes=O({},H.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),positionOffset:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),W.defaultProps=O({},H.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),W.default=W,W.DraggableCore=H,W}); -//# sourceMappingURL=react-draggable.min.js.map diff --git a/dist/react-draggable.min.js.map b/dist/react-draggable.min.js.map deleted file mode 100644 index d25ea802..00000000 --- a/dist/react-draggable.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-draggable.min.js","sources":["../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/classnames/index.js","../lib/utils/shims.js","../lib/utils/getPrefix.js","../lib/utils/domFns.js","../lib/utils/positionFns.js","../lib/DraggableCore.js","../lib/Draggable.js","../lib/umd.js"],"sourcesContent":["\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nexport function findInArray(array: Array | TouchList, callback: Function): any {\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nexport function isFunction(func: any): boolean {\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nexport function isNum(num: any): boolean {\n return typeof num === 'number' && !isNaN(num);\n}\n\nexport function int(a: string): number {\n return parseInt(a, 10);\n}\n\nexport function dontSetMe(props: Object, propName: string, componentName: string) {\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}\n","// @flow\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nexport function getPrefix(prop: string='transform'): string {\n // Checking specifically for 'window.document' is for pseudo-browser server-side\n // environments that define 'window' as the global context.\n // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84)\n if (typeof window === 'undefined' || typeof window.document === 'undefined') return '';\n\n const style = window.document.documentElement.style;\n\n if (prop in style) return '';\n\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nexport function browserPrefixToKey(prop: string, prefix: string): string {\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\n\nexport function browserPrefixToStyle(prop: string, prefix: string): string {\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\n\nfunction kebabToTitleCase(str: string): string {\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nexport default getPrefix();\n","// @flow\nimport {findInArray, isFunction, int} from './shims';\nimport browserPrefix, {browserPrefixToKey} from './getPrefix';\n\nimport type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';\n\nlet matchesSelectorFunc = '';\nexport function matchesSelector(el: Node, selector: string): boolean {\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = findInArray([\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'\n ], function(method){\n // $FlowIgnore: Doesn't think elements are indexable\n return isFunction(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!isFunction(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nexport function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean {\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nexport function addEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else if (el.addEventListener) {\n el.addEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nexport function removeEvent(el: ?Node, event: string, handler: Function): void {\n if (!el) { return; }\n if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else if (el.removeEventListener) {\n el.removeEventListener(event, handler, true);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nexport function outerHeight(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += int(computedStyle.borderTopWidth);\n height += int(computedStyle.borderBottomWidth);\n return height;\n}\n\nexport function outerWidth(node: HTMLElement): number {\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += int(computedStyle.borderLeftWidth);\n width += int(computedStyle.borderRightWidth);\n return width;\n}\nexport function innerHeight(node: HTMLElement): number {\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= int(computedStyle.paddingTop);\n height -= int(computedStyle.paddingBottom);\n return height;\n}\n\nexport function innerWidth(node: HTMLElement): number {\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= int(computedStyle.paddingLeft);\n width -= int(computedStyle.paddingRight);\n return width;\n}\n\n// Get from offsetParent\nexport function offsetXYFromParent(evt: {clientX: number, clientY: number}, offsetParent: HTMLElement): ControlPosition {\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect();\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left;\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top;\n\n return {x, y};\n}\n\nexport function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): Object {\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {[browserPrefixToKey('transform', browserPrefix)]: translation };\n}\n\nexport function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string {\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nexport function getTranslation({x, y}: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string {\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${(typeof positionOffset.x === 'string') ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${(typeof positionOffset.y === 'string') ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\n\nexport function getTouch(e: MouseTouchEvent, identifier: number): ?{clientX: number, clientY: number} {\n return (e.targetTouches && findInArray(e.targetTouches, t => identifier === t.identifier)) ||\n (e.changedTouches && findInArray(e.changedTouches, t => identifier === t.identifier));\n}\n\nexport function getTouchIdentifier(e: MouseTouchEvent): ?number {\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nexport function addUserSelectStyles(doc: ?Document) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nexport function removeUserSelectStyles(doc: ?Document) {\n try {\n if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n window.getSelection().removeAllRanges(); // remove selection caused by scroll\n }\n } catch (e) {\n // probably IE\n }\n}\n\nexport function styleHacks(childStyle: Object = {}): Object {\n // Workaround IE pointer events; see #51\n // https://github.com/mzabriskie/react-draggable/issues/51#issuecomment-103488278\n return {\n touchAction: 'none',\n ...childStyle\n };\n}\n\nexport function addClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\n\nexport function removeClassName(el: HTMLElement, className: string) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}\n","// @flow\nimport {isNum, int} from './shims';\nimport ReactDOM from 'react-dom';\nimport {getTouch, innerWidth, innerHeight, offsetXYFromParent, outerWidth, outerHeight} from './domFns';\n\nimport type Draggable from '../Draggable';\nimport type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';\nimport type DraggableCore from '../DraggableCore';\n\nexport function getBoundPosition(draggable: Draggable, x: number, y: number): [number, number] {\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {bounds} = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n const {ownerDocument} = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNode);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),\n top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),\n right: innerWidth(boundNode) - outerWidth(node) - node.offsetLeft +\n int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),\n bottom: innerHeight(boundNode) - outerHeight(node) - node.offsetTop +\n int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if (isNum(bounds.right)) x = Math.min(x, bounds.right);\n if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if (isNum(bounds.left)) x = Math.max(x, bounds.left);\n if (isNum(bounds.top)) y = Math.max(y, bounds.top);\n\n return [x, y];\n}\n\nexport function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number] {\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nexport function canDragX(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nexport function canDragY(draggable: Draggable): boolean {\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseTouchEvent, touchIdentifier: ?number, draggableCore: DraggableCore): ?ControlPosition {\n const touchObj = typeof touchIdentifier === 'number' ? getTouch(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return offsetXYFromParent(touchObj || e, offsetParent);\n}\n\n// Create an data object exposed by 's events\nexport function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData {\n const state = draggable.state;\n const isStart = !isNum(state.lastX);\n const node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0, deltaY: 0,\n lastX: x, lastY: y,\n x, y,\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - state.lastX, deltaY: y - state.lastY,\n lastX: state.lastX, lastY: state.lastY,\n x, y,\n };\n }\n}\n\n// Create an data exposed by 's events\nexport function createDraggableData(draggable: Draggable, coreData: DraggableData): DraggableData {\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + (coreData.deltaX / scale),\n y: draggable.state.y + (coreData.deltaY / scale),\n deltaX: (coreData.deltaX / scale),\n deltaY: (coreData.deltaY / scale),\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds: Bounds): Bounds {\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable: Draggable | DraggableCore): HTMLElement {\n const node = ReactDOM.findDOMNode(draggable);\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier,\n removeUserSelectStyles, styleHacks} from './utils/domFns';\nimport {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport log from './utils/log';\n\nimport type {EventHandler, MouseTouchEvent} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n\ntype DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};\n\nexport type DraggableBounds = {\n left: number,\n right: number,\n top: number,\n bottom: number,\n};\n\nexport type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};\n\nexport type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void;\n\nexport type ControlPosition = {x: number, y: number};\nexport type PositionOffsetControlPosition = {x: number|string, y: number|string};\n\nexport type DraggableCoreProps = {\n allowAnyClick: boolean,\n cancel: string,\n children: ReactElement,\n disabled: boolean,\n enableUserSelectHack: boolean,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n};\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nexport default class DraggableCore extends React.Component {\n\n static displayName = 'DraggableCore';\n\n static propTypes = {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: PropTypes.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: PropTypes.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: PropTypes.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function(props: DraggableCoreProps, propName: $Keys) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: PropTypes.arrayOf(PropTypes.number),\n \n /**\n * `scale` specifies the scale of the area you are dragging inside of. It allows\n * the drag deltas to scale correctly with how far zoomed in/out you are.\n */\n scale: PropTypes.number,\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: PropTypes.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: PropTypes.string,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: PropTypes.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: PropTypes.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: PropTypes.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: PropTypes.func,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n allowAnyClick: false, // by default only accept left click\n cancel: null,\n disabled: false,\n enableUserSelectHack: true,\n offsetParent: null,\n handle: null,\n grid: null,\n transform: null,\n onStart: function(){},\n onDrag: function(){},\n onStop: function(){},\n onMouseDown: function(){}\n };\n\n state = {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN, lastY: NaN,\n touchIdentifier: null\n };\n\n componentWillUnmount() {\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n const {ownerDocument} = thisNode;\n removeEvent(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.touch.move, this.handleDrag);\n removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument);\n }\n }\n\n handleDragStart: EventHandler = (e) => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = ReactDOM.findDOMNode(this);\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {ownerDocument} = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled ||\n (!(e.target instanceof ownerDocument.defaultView.Node)) ||\n (this.props.handle && !matchesSelectorAndParentsTo(e.target, this.props.handle, thisNode)) ||\n (this.props.cancel && matchesSelectorAndParentsTo(e.target, this.props.cancel, thisNode))) {\n return;\n }\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = getTouchIdentifier(e);\n this.setState({touchIdentifier});\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {x, y} = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n log('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) addUserSelectStyles(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.setState({\n dragging: true,\n\n lastX: x,\n lastY: y\n });\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n addEvent(ownerDocument, dragEventFor.move, this.handleDrag);\n addEvent(ownerDocument, dragEventFor.stop, this.handleDragStop);\n };\n\n handleDrag: EventHandler = (e) => {\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n if (e.type === 'touchmove') e.preventDefault();\n\n // Get the current drag point from the event. This is used as the offset.\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n let {x, y} = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY;\n [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.state.lastX + deltaX, y = this.state.lastY + deltaY;\n }\n\n const coreEvent = createCoreData(this, x, y);\n\n log('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents'): any): MouseTouchEvent);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n\n this.setState({\n lastX: x,\n lastY: y\n });\n };\n\n handleDragStop: EventHandler = (e) => {\n if (!this.state.dragging) return;\n\n const position = getControlPosition(e, this.state.touchIdentifier, this);\n if (position == null) return;\n const {x, y} = position;\n const coreEvent = createCoreData(this, x, y);\n\n const thisNode = ReactDOM.findDOMNode(this);\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument);\n }\n\n log('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n // Call event handler\n this.props.onStop(e, coreEvent);\n\n if (thisNode) {\n // Remove event handlers\n log('DraggableCore: Removing handlers');\n removeEvent(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n removeEvent(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n };\n\n onMouseDown: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n };\n\n onMouseUp: EventHandler = (e) => {\n dragEventFor = eventsFor.mouse;\n\n return this.handleDragStop(e);\n };\n\n // Same as onMouseDown (start drag), but now consider this a touch device.\n onTouchStart: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStart(e);\n };\n\n onTouchEnd: EventHandler = (e) => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n\n return this.handleDragStop(e);\n };\n\n render() {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return React.cloneElement(React.Children.only(this.props.children), {\n style: styleHacks(this.props.children.props.style),\n\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onMouseUp: this.onMouseUp,\n onTouchEnd: this.onTouchEnd\n });\n }\n}\n","// @flow\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport {createCSSTransform, createSVGTransform} from './utils/domFns';\nimport {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns';\nimport {dontSetMe} from './utils/shims';\nimport DraggableCore from './DraggableCore';\nimport type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore';\nimport log from './utils/log';\nimport type {DraggableEventHandler} from './utils/types';\nimport type {Element as ReactElement} from 'react';\n\ntype DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean\n};\n\nexport type DraggableProps = {\n ...$Exact,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: DraggableBounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n scale: number\n};\n\n//\n// Define \n//\n\nexport default class Draggable extends React.Component {\n\n static displayName = 'Draggable';\n\n static propTypes = {\n // Accepts all props accepts.\n ...DraggableCore.propTypes,\n\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: PropTypes.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: PropTypes.oneOfType([\n PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n PropTypes.string,\n PropTypes.oneOf([false])\n ]),\n\n defaultClassName: PropTypes.string,\n defaultClassNameDragging: PropTypes.string,\n defaultClassNameDragged: PropTypes.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n positionOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: dontSetMe,\n style: dontSetMe,\n transform: dontSetMe\n };\n\n static defaultProps = {\n ...DraggableCore.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {x: 0, y: 0},\n position: null,\n scale: 1\n };\n\n constructor(props: DraggableProps) {\n super(props);\n\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n\n // Whether or not we have been dragged before.\n dragged: false,\n\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n\n // Used for compensating for out-of-bounds drags\n slackX: 0, slackY: 0,\n\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' +\n 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' +\n '`position` of this element.');\n }\n }\n\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) {\n this.setState({ isElementSVG: true });\n }\n }\n\n componentWillReceiveProps(nextProps: Object) {\n // Set x/y if position has changed\n if (nextProps.position &&\n (!this.props.position ||\n nextProps.position.x !== this.props.position.x ||\n nextProps.position.y !== this.props.position.y\n )\n ) {\n this.setState({ x: nextProps.position.x, y: nextProps.position.y });\n }\n }\n\n componentWillUnmount() {\n this.setState({dragging: false}); // prevents invariant if unmounted while dragging\n }\n\n onDragStart: DraggableEventHandler = (e, coreData) => {\n log('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, createDraggableData(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n\n this.setState({dragging: true, dragged: true});\n };\n\n onDrag: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n log('Draggable: onDrag: %j', coreData);\n\n const uiData = createDraggableData(this, coreData);\n\n const newState: $Shape = {\n x: uiData.x,\n y: uiData.y\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {x, y} = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = getBoundPosition(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n\n this.setState(newState);\n };\n\n onDragStop: DraggableEventHandler = (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldStop = this.props.onStop(e, createDraggableData(this, coreData));\n if (shouldStop === false) return false;\n\n log('Draggable: onDragStop: %j', coreData);\n\n const newState: $Shape = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {x, y} = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n\n this.setState(newState);\n };\n\n render(): ReactElement {\n let style = {}, svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(this.props.position);\n const draggable = !controlled || this.state.dragging;\n\n const position = this.props.position || this.props.defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: canDragX(this) && draggable ?\n this.state.x :\n position.x,\n\n // Set top if vertical drag is enabled\n y: canDragY(this) && draggable ?\n this.state.y :\n position.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = createSVGTransform(transformOpts, this.props.positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = createCSSTransform(transformOpts, this.props.positionOffset);\n }\n\n const {\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged\n } = this.props;\n\n const children = React.Children.only(this.props.children);\n\n // Mark with class while dragging\n const className = classNames((children.props.className || ''), defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return (\n \n {React.cloneElement(children, {\n className: className,\n style: {...children.props.style, ...style},\n transform: svgTransform\n })}\n \n );\n }\n}\n","import Draggable from './Draggable';\nimport DraggableCore from './DraggableCore';\n\n// Previous versions of this lib exported as the root export. As to not break\n// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nDraggable.default = Draggable;\nDraggable.DraggableCore = DraggableCore;\n\nexport default Draggable;\n"],"names":["makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","module","shim","props","propName","componentName","location","propFullName","secret","ReactPropTypesSecret","invariant","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$1","hasOwn","classNames","classes","arguments","length","argType","push","Array","isArray","apply","key","call","exports","window","findInArray","callback","isFunction","toString","isNum","num","isNaN","int","parseInt","dontSetMe","prefixes","browserPrefixToKey","prop","prefix","str","out","shouldCapitalize","toUpperCase","kebabToTitleCase","document","style","documentElement","getPrefix","matchesSelectorFunc","matchesSelector","el","selector","method","matchesSelectorAndParentsTo","baseNode","parentNode","addEvent","event","handler","attachEvent","addEventListener","removeEvent","detachEvent","removeEventListener","getTranslation","positionOffset","unitSuffix","translation","x","y","addUserSelectStyles","doc","className","styleEl","getElementById","createElement","type","id","innerHTML","getElementsByTagName","appendChild","body","classList","add","match","RegExp","removeUserSelectStyles","remove","selection","empty","getSelection","removeAllRanges","getBoundPosition","draggable","bounds","left","top","right","bottom","cloneBounds","findDOMNode","ownerDocument","ownerWindow","defaultView","boundNode","querySelector","HTMLElement","nodeStyle","getComputedStyle","boundNodeStyle","offsetLeft","paddingLeft","marginLeft","offsetTop","paddingTop","marginTop","width","clientWidth","computedStyle","paddingRight","innerWidth","borderLeftWidth","borderRightWidth","outerWidth","marginRight","height","clientHeight","paddingBottom","innerHeight","borderTopWidth","borderBottomWidth","outerHeight","marginBottom","Math","min","max","getControlPosition","touchIdentifier","draggableCore","touchObj","identifier","targetTouches","t","changedTouches","getTouch","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","offsetXYFromParent","createCoreData","state","isStart","lastX","deltaY","lastY","createDraggableData","coreData","scale","deltaX","ReactDOM","eventsFor","dragEventFor","mouse","DraggableCore","NaN","handleDragStart","onMouseDown","_this","allowAnyClick","button","thisNode","disabled","target","Node","handle","cancel","getTouchIdentifier","setState","position","coreEvent","onStart","enableUserSelectHack","move","handleDrag","stop","handleDragStop","preventDefault","grid","pendingX","pendingY","round","onDrag","MouseEvent","createEvent","initMouseEvent","dragging","onStop","onMouseUp","onTouchStart","touch","onTouchEnd","React","cloneElement","Children","only","children","childStyle","styleHacks","Component","displayName","propTypes","nodeType","defaultProps","Draggable","onDragStart","dragged","uiData","newState","slackX","slackY","newStateX","newStateY","onDragStop","Boolean","defaultPosition","warn","SVGElement","isElementSVG","nextProps","controlPos","svgTransform","transformOpts","axis","canDragX","canDragY","browserPrefix","createCSSTransform","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","default"],"mappings":"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"} \ No newline at end of file From c5adeac8e31be040cee225dad05722839a2aafbf Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 26 Aug 2019 13:30:05 -0500 Subject: [PATCH 319/412] chore(pkg): remove bower We haven't published to this in ages. --- Makefile | 4 ++-- bower.json | 28 ---------------------------- 2 files changed, 2 insertions(+), 30 deletions(-) delete mode 100644 bower.json diff --git a/Makefile b/Makefile index 01fb3f80..af05ac5e 100644 --- a/Makefile +++ b/Makefile @@ -33,13 +33,13 @@ define release VERSION=`node -pe "require('./package.json').version"` && \ NEXT_VERSION=`node -pe "require('semver').inc(\"$$VERSION\", '$(1)')"` && \ node -e "\ - ['./package.json', './bower.json'].forEach(function(fileName) {\ + ['./package.json'].forEach(function(fileName) {\ var j = require(fileName);\ j.version = \"$$NEXT_VERSION\";\ var s = JSON.stringify(j, null, 2);\ require('fs').writeFileSync(fileName, s);\ });" && \ - git add package.json bower.json CHANGELOG.md && \ + git add package.json CHANGELOG.md && \ git add -f dist/ && \ git commit -m "release v$$NEXT_VERSION" && \ git tag "v$$NEXT_VERSION" -m "release v$$NEXT_VERSION" diff --git a/bower.json b/bower.json deleted file mode 100644 index d11203cc..00000000 --- a/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "react-draggable", - "version": "3.3.2", - "homepage": "https://github.com/mzabriskie/react-draggable", - "authors": [ - "Matt Zabriskie", - "Samuel Reed" - ], - "description": "React draggable component", - "main": "./dist/react-draggable.js", - "keywords": [ - "react", - "draggable" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "example", - "lib", - "node_modules", - "script", - "specs", - "index.js", - "karma.conf.js", - "webpack.config.js", - "package.json" - ] -} \ No newline at end of file From fea778c8e89db2a4e1a35e563b65634f8146e7e4 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 26 Aug 2019 13:38:47 -0500 Subject: [PATCH 320/412] fix(react): React 16.3+ compatibility using `getDerivedPropsFromState(props, state)` --- lib/Draggable.js | 79 +++++++++++++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index 96156fd7..f8d7e79e 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -17,7 +17,8 @@ type DraggableState = { dragged: boolean, x: number, y: number, slackX: number, slackY: number, - isElementSVG: boolean + isElementSVG: boolean, + prevPropsPosition: ?ControlPosition, }; export type DraggableProps = { @@ -172,6 +173,26 @@ export default class Draggable extends React.Component { - let style = {}, svgTransform = null; + const { + axis, + bounds, + children, + defaultPosition, + defaultClassName, + defaultClassNameDragging, + defaultClassNameDragged, + position, + positionOffset, + ...draggableCoreProps + } = this.props; + + let style = {}; + let svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging. - const controlled = Boolean(this.props.position); + const controlled = Boolean(position); const draggable = !controlled || this.state.dragging; - const position = this.props.position || this.props.defaultPosition; + const validPosition = position || defaultPosition; const transformOpts = { // Set left if horizontal drag is enabled x: canDragX(this) && draggable ? this.state.x : - position.x, + validPosition.x, // Set top if vertical drag is enabled y: canDragY(this) && draggable ? this.state.y : - position.y + validPosition.y }; // If this element was SVG, we use the `transform` attribute. if (this.state.isElementSVG) { - svgTransform = createSVGTransform(transformOpts, this.props.positionOffset); + svgTransform = createSVGTransform(transformOpts, positionOffset); } else { // Add a CSS transform to move the element around. This allows us to move the element around // without worrying about whether or not it is relatively or absolutely positioned. // If the item you are dragging already has a transform set, wrap it in a so // has a clean slate. - style = createCSSTransform(transformOpts, this.props.positionOffset); + style = createCSSTransform(transformOpts, positionOffset); } - const { - defaultClassName, - defaultClassNameDragging, - defaultClassNameDragged - } = this.props; - - const children = React.Children.only(this.props.children); - // Mark with class while dragging const className = classNames((children.props.className || ''), defaultClassName, { [defaultClassNameDragging]: this.state.dragging, @@ -355,8 +372,8 @@ export default class Draggable extends React.Component - {React.cloneElement(children, { + + {React.cloneElement(React.Children.only(children), { className: className, style: {...children.props.style, ...style}, transform: svgTransform From b8e04053ff01f6e48d4961e7ee22081f632bad2c Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 26 Aug 2019 13:39:47 -0500 Subject: [PATCH 321/412] chore(changelog): update CHANGELOG --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 541c6f10..fdd3555a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +### 4.0.0 (Aug 26, 2019) + +> This is a major release due to a React compatibility change. If you are already on React >= 16.3, this upgrade is non-breaking. + +- *Requires React 16.3+ due to use of `getDerivedStateFromProps`. + - See https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html for why this was done. +- Upgraded build environment to Babel 7. +- Switched build from rollup to webpack@4 to simplify. +- Added CJS build that does not bundle `classNames` & `prop-types` into the build. This should result in marginally smaller bundle sizes for applications that use bundlers. +- Removed Bower build. + ### 3.3.2 (Aug 16, 2019) - Use `all: inherit` instead of `background: transparent;` to fix selection styles. From 30b2569f5447a706845f1648771380df3f34c476 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 27 Aug 2019 11:08:53 -0500 Subject: [PATCH 322/412] fix(test): get test webpack to compile again --- index-babel.js | 9 +++++++++ karma.conf.js | 34 +++++++++------------------------- package.json | 1 - specs/draggable.spec.jsx | 2 +- yarn.lock | 5 ----- 5 files changed, 19 insertions(+), 32 deletions(-) create mode 100644 index-babel.js diff --git a/index-babel.js b/index-babel.js new file mode 100644 index 00000000..10429816 --- /dev/null +++ b/index-babel.js @@ -0,0 +1,9 @@ +var Draggable = require('./lib/Draggable').default; + +// Previous versions of this lib exported as the root export. As to not break +// them, or TypeScript, we export *both* as the root and as 'default'. +// See https://github.com/mzabriskie/react-draggable/pull/254 +// and https://github.com/mzabriskie/react-draggable/issues/266 +module.exports = Draggable; +module.exports.default = Draggable; +module.exports.DraggableCore = require('./lib/DraggableCore').default; diff --git a/karma.conf.js b/karma.conf.js index e27daffd..2daa6ec0 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -21,23 +21,17 @@ module.exports = function(config) { }, webpack: { + mode: 'production', module: { // Suppress power-assert warning exprContextCritical: false, - loaders: [ + rules: [ { - test: /\.(?:jsx?)$/, - loader: 'babel-loader', - query: { - cacheDirectory: true, - }, - exclude: /node_modules/ - }, - { - test: /\.json$/, - loader: 'json-loader' + test: /\.(?:js|es).?$/, + loader: 'babel-loader?cacheDirectory', + exclude: /(node_modules)/ } - ], + ] }, plugins: [ new webpack.DefinePlugin({ @@ -46,9 +40,9 @@ module.exports = function(config) { } }) ], - resolve: { - extensions: ['.js'] - } + performance: { + hints: false + } }, webpackServer: { @@ -80,15 +74,5 @@ module.exports = function(config) { }, singleRun: true, - - plugins: [ - 'karma-jasmine', - 'karma-phantomjs-launcher', - 'karma-firefox-launcher', - 'karma-chrome-launcher', - 'karma-ie-launcher', - 'karma-webpack', - 'karma-phantomjs-shim', - ] }); }; diff --git a/package.json b/package.json index 272bfc72..b3a07090 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "eslint-plugin-react": "^7.5.1", "flow-bin": "^0.69.0", "jasmine-core": "^3.4.0", - "json-loader": "^0.5.7", "karma": "^4.2.0", "karma-chrome-launcher": "^3.1.0", "karma-cli": "2.0.0", diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 4267f2bc..587954c4 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -3,7 +3,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react-dom/test-utils'; import ShallowRenderer from 'react-test-renderer/shallow'; -import Draggable, {DraggableCore} from '../index'; +import Draggable, {DraggableCore} from '../index-babel'; import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; import _ from 'lodash'; diff --git a/yarn.lock b/yarn.lock index 149f54a7..a7a9bea2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3860,11 +3860,6 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-loader@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== - json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" From 400ee198ccb4930fc6456e6afbecffa410c6040d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 27 Aug 2019 11:13:09 -0500 Subject: [PATCH 323/412] chore(lint): fix eslint warns --- .eslintrc | 2 +- lib/Draggable.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.eslintrc b/.eslintrc index b9106d38..31dfe3be 100644 --- a/.eslintrc +++ b/.eslintrc @@ -13,7 +13,7 @@ "no-console": 2, "no-use-before-define": [1, "nofunc"], "no-underscore-dangle": 0, - "no-unused-vars": 1, + "no-unused-vars": [1, {ignoreRestSiblings: true}], "new-cap": 0, "prefer-const": 1, "semi": 1 diff --git a/lib/Draggable.js b/lib/Draggable.js index f8d7e79e..3e55b36d 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -183,7 +183,7 @@ export default class Draggable extends React.Component Date: Tue, 27 Aug 2019 11:13:19 -0500 Subject: [PATCH 324/412] fix(test): remove `scale` from (unused) to fix test --- lib/Draggable.js | 1 + lib/DraggableCore.js | 8 +------- specs/draggable.spec.jsx | 6 +++--- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index 3e55b36d..2a6ec238 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -329,6 +329,7 @@ export default class Draggable extends React.Component +
Date: Tue, 27 Aug 2019 11:17:37 -0500 Subject: [PATCH 325/412] chore(test): update appveyor versions --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index dbd918b4..e478bf3b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,9 +2,9 @@ environment: matrix: + - node_version: "12" + - node_version: "10" - node_version: "8" - - node_version: "6" - - node_version: "4" IE_BIN: "%PROGRAMFILES%\\Internet Explorer\\iexplore.exe" cache: From bb4305aec3386c0aabb3d1cc8a44db57fe4783cd Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 27 Aug 2019 11:17:58 -0500 Subject: [PATCH 326/412] chore(test): update travis Node versions --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a00ef76e..9721b4eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: node_js node_js: - - "6" - "8" + - "10" - "node" # latest cache: yarn env: From 40bb34d589e72f92f914ca114faf2b1730d7c826 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 7 Sep 2019 17:17:02 +0900 Subject: [PATCH 327/412] fix(makefile): no longer committing dist/ --- Makefile | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index af05ac5e..7ac675bd 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ export BIN := $(shell yarn bin) .DEFAULT_GOAL := build clean: - rm -rf dist + rm -rf build lint: @$(BIN)/flow @@ -40,20 +40,19 @@ define release require('fs').writeFileSync(fileName, s);\ });" && \ git add package.json CHANGELOG.md && \ - git add -f dist/ && \ git commit -m "release v$$NEXT_VERSION" && \ git tag "v$$NEXT_VERSION" -m "release v$$NEXT_VERSION" endef -release-patch: test clean build +release-patch: test build @$(call release,patch) -release-minor: test clean build +release-minor: test build @$(call release,minor) -release-major: test clean build +release-major: test build @$(call release,major) -publish: clean build +publish: build git push --tags origin HEAD:master yarn publish From a61018da9f52bc8ed27af8564b02a97b5df2d55d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 7 Sep 2019 17:17:31 +0900 Subject: [PATCH 328/412] release v4.0.0 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b3a07090..a5a58d79 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "3.3.2", + "version": "4.0.0", "description": "React draggable component", "main": "index.js", "browser": "web/react-draggable.js", @@ -82,4 +82,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} +} \ No newline at end of file From dd2ce5a857aa969f6dff3971e76939b1bfc9217b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 7 Sep 2019 17:28:15 +0900 Subject: [PATCH 329/412] fix(npm): use "files" package.json attribute instead of npmignore Bundle down to 150kB unpacked vs nearly a meg --- .npmignore | 9 --------- package.json | 3 +++ 2 files changed, 3 insertions(+), 9 deletions(-) delete mode 100644 .npmignore diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 35613a59..00000000 --- a/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -**/.* -example -script -specs -karma.conf.js -Makefile -yarn.lock -appveyor.yml -*.txt diff --git a/package.json b/package.json index a5a58d79..7e793356 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,9 @@ "lint": "make lint", "flow": "flow" }, + "files": [ + "/lib" + ], "typings": "./typings/index.d.ts", "types": "./typings/index.d.ts", "repository": { From 6ad03ce1b93a3c121812d3932a30a6ec7cec2d1e Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 7 Sep 2019 17:30:26 +0900 Subject: [PATCH 330/412] release v4.0.1 --- CHANGELOG.md | 4 ++++ package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fdd3555a..2fc9a028 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 4.0.1 (Sep 7, 2019) + +- Republish of 4.0.0 to fix a mistake where webpack working files were erroneously included in the package. Use this release instead as it is much smaller. + ### 4.0.0 (Aug 26, 2019) > This is a major release due to a React compatibility change. If you are already on React >= 16.3, this upgrade is non-breaking. diff --git a/package.json b/package.json index 7e793356..f828a670 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.0.0", + "version": "4.0.1", "description": "React draggable component", "main": "index.js", "browser": "web/react-draggable.js", From a214ac65469b4a0325c86f0a7f8f19fda48c626b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 7 Sep 2019 17:31:32 +0900 Subject: [PATCH 331/412] fix(makefile): no need to build on version increments we're not committing built files anymore --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 7ac675bd..a941028d 100644 --- a/Makefile +++ b/Makefile @@ -44,13 +44,13 @@ define release git tag "v$$NEXT_VERSION" -m "release v$$NEXT_VERSION" endef -release-patch: test build +release-patch: test @$(call release,patch) -release-minor: test build +release-minor: test @$(call release,minor) -release-major: test build +release-major: test @$(call release,major) publish: build From ad8b499011338fb78c9bad9989c3dcb4cd36b4b9 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 9 Sep 2019 11:09:20 -0400 Subject: [PATCH 332/412] fix(build): properly include build/ in published package refactor webpack, babel & karma config Fixes #425, #426 --- .babelrc => .babelrc.js | 10 ++++++-- index-babel.js => index-src.js | 0 karma.conf.js | 44 +++++++++++++++------------------- package.json | 5 ++-- specs/draggable.spec.jsx | 2 +- webpack.config.js | 26 +++++++++++++------- 6 files changed, 48 insertions(+), 39 deletions(-) rename .babelrc => .babelrc.js (66%) rename index-babel.js => index-src.js (100%) diff --git a/.babelrc b/.babelrc.js similarity index 66% rename from .babelrc rename to .babelrc.js index e80fabbd..c8ba03dd 100644 --- a/.babelrc +++ b/.babelrc.js @@ -1,9 +1,15 @@ -{ +'use strict'; + +const targets = process.env.IS_WEBPACK === "1" ? + "> 0.25%, not dead" : + "maintained node versions" + +module.exports = { "presets": [ [ "@babel/preset-env", { - "modules": false + targets } ], "@babel/react", diff --git a/index-babel.js b/index-src.js similarity index 100% rename from index-babel.js rename to index-src.js diff --git a/karma.conf.js b/karma.conf.js index 2daa6ec0..0f108b75 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,4 +1,7 @@ -var webpack = require('webpack'); +'use strict'; + +const webpack = require('webpack'); +const _ = require('lodash'); process.env.NODE_ENV = 'test'; process.env.CHROME_BIN = require('puppeteer').executablePath(); @@ -20,30 +23,21 @@ module.exports = function(config) { 'specs/main.js': ['webpack'] }, - webpack: { - mode: 'production', - module: { - // Suppress power-assert warning - exprContextCritical: false, - rules: [ - { - test: /\.(?:js|es).?$/, - loader: 'babel-loader?cacheDirectory', - exclude: /(node_modules)/ - } - ] - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"test"' - } - }) - ], - performance: { - hints: false - } - }, + webpack: _.merge( + require('./webpack.config.js')({}, {}), + { + mode: 'production', + module: { + // Suppress power-assert warning + exprContextCritical: false, + }, + performance: { + hints: false, + }, + // zero out externals; we want to bundle React + externals: '', + } + ), webpackServer: { stats: { diff --git a/package.json b/package.json index f828a670..2365f857 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "4.0.1", "description": "React draggable component", "main": "index.js", - "browser": "web/react-draggable.js", + "browser": "web/react-draggable.min.js", "scripts": { "test": "make test", "test-debug": "karma start --browsers=Chrome", @@ -14,7 +14,8 @@ "flow": "flow" }, "files": [ - "/lib" + "/build", + "/web/react-draggable.min.js" ], "typings": "./typings/index.d.ts", "types": "./typings/index.d.ts", diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 3ad68b30..83725154 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -3,7 +3,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react-dom/test-utils'; import ShallowRenderer from 'react-test-renderer/shallow'; -import Draggable, {DraggableCore} from '../index-babel'; +import Draggable, {DraggableCore} from '../index-src'; import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; import _ from 'lodash'; diff --git a/webpack.config.js b/webpack.config.js index e3769062..cecbdb4d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -2,10 +2,14 @@ const path = require('path'); const webpack = require('webpack'); const TerserPlugin = require('terser-webpack-plugin'); -module.exports = { +// Grabbed in .babelrc.js to switch on preset-env target. +// If we're in webpack, we compile for browsers, otherwise we compile for modern Node. +process.env.IS_WEBPACK = "1"; + +module.exports = (env, argv) => ({ entry: { - "react-draggable": "./index.js", - "react-draggable.min": "./index.js", + "react-draggable": "./index-src.js", + "react-draggable.min": "./index-src.js", }, output: { filename: '[name].js', @@ -42,7 +46,10 @@ module.exports = { rules: [ { test: /\.(?:js|es).?$/, - loader: 'babel-loader?cacheDirectory', + loader: 'babel-loader', + options: { + cacheDirectory: true, + }, exclude: /(node_modules)/ } ] @@ -50,8 +57,10 @@ module.exports = { plugins: [ new webpack.EnvironmentPlugin({ // Default values - DRAGGABLE_DEBUG: false, - NODE_ENV: 'production' + DRAGGABLE_DEBUG: argv.mode === 'development', + NODE_ENV: ['development', 'production'].includes(argv.mode) ? + argv.mode : + (process.env.NODE_ENV || 'production'), }), // Scope hoisting new webpack.optimize.ModuleConcatenationPlugin(), @@ -60,8 +69,7 @@ module.exports = { minimizer: [new TerserPlugin({ include: /\.min\.js$/, sourceMap: true, - terserOptions: { - } + terserOptions: {} })], } -}; +}); From 4e075bd1c4d33124c63efd13c3281f123680ec99 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 9 Sep 2019 11:13:49 -0400 Subject: [PATCH 333/412] chore(test): trim webpack config for speed --- karma.conf.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/karma.conf.js b/karma.conf.js index 0f108b75..9432d3e4 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -27,6 +27,10 @@ module.exports = function(config) { require('./webpack.config.js')({}, {}), { mode: 'production', + // Remove minified build & separate compile of index-src + entry: '', + // Remove source maps: *speeeeeed* + devtool: 'none', module: { // Suppress power-assert warning exprContextCritical: false, From 41a02c380b87b1d925566645f9e8dd97c52c1664 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 9 Sep 2019 11:14:45 -0400 Subject: [PATCH 334/412] release v4.0.2 --- CHANGELOG.md | 4 ++++ package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fc9a028..1e20f726 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 4.0.2 (Sep 9, 2019) + +- Republish to fix packaging errors. Fixes #426 + ### 4.0.1 (Sep 7, 2019) - Republish of 4.0.0 to fix a mistake where webpack working files were erroneously included in the package. Use this release instead as it is much smaller. diff --git a/package.json b/package.json index 2365f857..86e78cfc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.0.1", + "version": "4.0.2", "description": "React draggable component", "main": "index.js", "browser": "web/react-draggable.min.js", From c38d79426f6495ee5d3c230bdcfd93cd225fdf80 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 Sep 2019 09:22:41 -0400 Subject: [PATCH 335/412] fix(pkg): add sourcemap, typescript definitions back to pkg Fixes #427, #428 --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 86e78cfc..858bd1e3 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,9 @@ }, "files": [ "/build", - "/web/react-draggable.min.js" + "/typings", + "/web/react-draggable.min.js", + "/web/react-draggable.min.js.map" ], "typings": "./typings/index.d.ts", "types": "./typings/index.d.ts", From f0242053036e69e3bc2b8764ef6f252c3f9b9057 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 10 Sep 2019 09:25:17 -0400 Subject: [PATCH 336/412] release v4.0.3 --- CHANGELOG.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e20f726..7eb8099f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 4.0.3 (Sep 10, 2019) + +- Add typings and sourcemap to published npm package. + - This compresses well so it does not bloat the package by much. Would be nice if npm had another delivery mechanism for optional modes, like web/TS. + ### 4.0.2 (Sep 9, 2019) - Republish to fix packaging errors. Fixes #426 diff --git a/package.json b/package.json index 858bd1e3..13b1ef8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.0.2", + "version": "4.0.3", "description": "React draggable component", "main": "index.js", "browser": "web/react-draggable.min.js", From e055f9651b9512e6d876b3e4c85615dab391ae0f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 25 Oct 2019 13:30:21 -0400 Subject: [PATCH 337/412] Rework build process & add "module" to package.json. (#441) * fix(build): add module build This allows us to export a cjs build that is more ES5-like to avoid issues with JSDOM, PhantomJS, etc. * test(phantom): separate out phantom test to use cjs build opts This ensures we're testing both build types * refactor(build): remove index.js mess, rename to cjs.js Finishes refactor. Dev, test, lint, and build all working. * fix(build): separate module options & es6 compat --- .babelrc.js | 15 +++++---- .browserslistrc | 3 ++ .gitignore | 1 - .travis.yml | 5 +-- Makefile | 21 +++++++++--- example/example.js | 2 +- example/index.html | 2 +- index.js | 9 ------ karma-phantomjs.conf.js | 32 +++++++++++++++++++ karma.conf.js | 20 +++--------- lib/Draggable.js | 4 ++- index-src.js => lib/cjs.js | 7 ++-- lib/umd.js | 11 ------- package.json | 6 ++-- specs/{main.js => draggable-phantom.spec.jsx} | 0 specs/draggable.spec.jsx | 2 +- webpack.config.js | 14 ++++---- 17 files changed, 88 insertions(+), 66 deletions(-) create mode 100644 .browserslistrc delete mode 100644 index.js create mode 100644 karma-phantomjs.conf.js rename index-src.js => lib/cjs.js (53%) delete mode 100644 lib/umd.js rename specs/{main.js => draggable-phantom.spec.jsx} (100%) diff --git a/.babelrc.js b/.babelrc.js index c8ba03dd..559ed47f 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -1,22 +1,25 @@ 'use strict'; -const targets = process.env.IS_WEBPACK === "1" ? - "> 0.25%, not dead" : - "maintained node versions" +// If set, we put Babel in "esmMode", i.e. leave import/export intact. +// Good for webpack and for an esm build. +const esmMode = process.env.BABEL_MODULE_TYPE === "module"; +const es6Compat = process.env.BABEL_ES_COMPAT === "6"; module.exports = { "presets": [ [ "@babel/preset-env", { - targets - } + // Don't transpile import/export in esmMode. + modules: esmMode ? false : "auto", + targets: es6Compat ? "maintained node versions" : undefined + }, ], "@babel/react", "@babel/preset-flow" ], "plugins": [ - "@babel/transform-flow-comments", + "@babel/plugin-transform-flow-comments", "@babel/plugin-proposal-class-properties", ], "env": { diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 00000000..53565ed3 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,3 @@ +> 0.25% +ie 11 +not dead \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9ceef6ae..466f3266 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ *.iml node_modules/ build/ -web/ diff --git a/.travis.yml b/.travis.yml index 9721b4eb..fab94b08 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,8 +9,9 @@ env: addons: firefox: latest script: - - npm run lint - - npm run test + - make lint + - make test + - make test-phantom email: on_failure: change on_success: never diff --git a/Makefile b/Makefile index a941028d..bd0866c7 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,30 @@ # Mostly lifted from https://andreypopp.com/posts/2013-05-16-makefile-recipes-for-node-js.html # Thanks @andreypopp +# Make it parallel +MAKEFLAGS += j4 export BIN := $(shell yarn bin) -.PHONY: test dev lint build clean install link +.PHONY: test dev lint build build-cjs build-esm build-web clean install link publish .DEFAULT_GOAL := build clean: rm -rf build + mkdir -p build lint: @$(BIN)/flow @$(BIN)/eslint lib/* lib/utils/* specs/* @$(BIN)/tsc -p typings -build: clean - $(BIN)/babel --out-dir ./build ./lib +build: build-cjs build-esm build-web + +build-cjs: $(BIN) + $(BIN)/babel --out-dir ./build/cjs ./lib + +build-esm: $(BIN) + env BABEL_MODULE_TYPE="module" BABEL_ES_COMPAT="6" $(BIN)/babel --out-dir ./build/module ./lib + +build-web: $(BIN) $(BIN)/webpack --mode=production --display-modules # Allows usage of `make install`, `make link` @@ -22,7 +32,10 @@ install link: @yarn $@ test: $(BIN) - @NODE_ENV=test $(BIN)/karma start --single-run + @NODE_ENV=test $(BIN)/karma start + +test-phantom: $(BIN) + @NODE_ENV=test $(BIN)/karma start karma-phantomjs.conf.js dev: $(BIN) clean DRAGGABLE_DEBUG=true $(BIN)/webpack-dev-server diff --git a/example/example.js b/example/example.js index 92f71c5f..96f8500f 100644 --- a/example/example.js +++ b/example/example.js @@ -1,4 +1,4 @@ -var Draggable = window.ReactDraggable; +const {ReactDraggable: Draggable, React, ReactDOM} = window; class App extends React.Component { state = { diff --git a/example/index.html b/example/index.html index bca50faa..5af754a0 100644 --- a/example/index.html +++ b/example/index.html @@ -57,7 +57,7 @@
- + diff --git a/index.js b/index.js deleted file mode 100644 index 0e299ca4..00000000 --- a/index.js +++ /dev/null @@ -1,9 +0,0 @@ -var Draggable = require('./build/Draggable').default; - -// Previous versions of this lib exported as the root export. As to not break -// them, or TypeScript, we export *both* as the root and as 'default'. -// See https://github.com/mzabriskie/react-draggable/pull/254 -// and https://github.com/mzabriskie/react-draggable/issues/266 -module.exports = Draggable; -module.exports.default = Draggable; -module.exports.DraggableCore = require('./build/DraggableCore').default; diff --git a/karma-phantomjs.conf.js b/karma-phantomjs.conf.js new file mode 100644 index 00000000..9f42a0a7 --- /dev/null +++ b/karma-phantomjs.conf.js @@ -0,0 +1,32 @@ +'use strict'; + +const baseConfig = require('./karma.conf.js'); +// Phantom build can't handle the modern JS in the module build +process.env.BABEL_MODULE_TYPE = 'cjs'; + +module.exports = function(config) { + // Set base config options. + baseConfig(config); + // Then set some of our own, to run PhantomJS. It's a bit older, which is the idea. + // We want to make sure our CJS build still works on old environments. + config.set({ + // Shim required for phantom + frameworks: ['phantomjs-shim', 'jasmine'], + browsers: ['PhantomJS_custom'], + // Includes Map/Set + files: [ + 'specs/draggable-phantom.spec.jsx' + ], + preprocessors: { + 'specs/draggable-phantom.spec.jsx': ['webpack'] + }, + customLaunchers: { + PhantomJS_custom: { + base: 'PhantomJS', + options: { + viewportSize: {width: 1024, height: 768} + } + } + }, + }); +}; diff --git a/karma.conf.js b/karma.conf.js index 9432d3e4..bd00b5ef 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,6 +1,5 @@ 'use strict'; -const webpack = require('webpack'); const _ = require('lodash'); process.env.NODE_ENV = 'test'; process.env.CHROME_BIN = require('puppeteer').executablePath(); @@ -10,25 +9,23 @@ module.exports = function(config) { basePath: '', - frameworks: ['phantomjs-shim', 'jasmine'], + frameworks: [ 'jasmine'], files: [ - 'specs/main.js' + 'specs/draggable.spec.jsx' ], exclude: [ ], preprocessors: { - 'specs/main.js': ['webpack'] + 'specs/draggable.spec.jsx': ['webpack'] }, webpack: _.merge( require('./webpack.config.js')({}, {}), { mode: 'production', - // Remove minified build & separate compile of index-src - entry: '', // Remove source maps: *speeeeeed* devtool: 'none', module: { @@ -60,16 +57,7 @@ module.exports = function(config) { autoWatch: false, - browsers: ['PhantomJS_custom', 'Firefox', 'ChromeHeadless'], - - customLaunchers: { - PhantomJS_custom: { - base: 'PhantomJS', - options: { - viewportSize: {width: 1024, height: 768} - } - } - }, + browsers: ['Firefox', 'ChromeHeadless'], singleRun: true, }); diff --git a/lib/Draggable.js b/lib/Draggable.js index 2a6ec238..7e53ecfe 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -38,7 +38,7 @@ export type DraggableProps = { // Define // -export default class Draggable extends React.Component { +class Draggable extends React.Component { static displayName = 'Draggable'; @@ -383,3 +383,5 @@ export default class Draggable extends React.Component as the root export. As to not break -// them, or TypeScript, we export *both* as the root and as 'default'. +// Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'. // See https://github.com/mzabriskie/react-draggable/pull/254 // and https://github.com/mzabriskie/react-draggable/issues/266 module.exports = Draggable; module.exports.default = Draggable; -module.exports.DraggableCore = require('./lib/DraggableCore').default; +module.exports.DraggableCore = DraggableCore; diff --git a/lib/umd.js b/lib/umd.js deleted file mode 100644 index f4b35186..00000000 --- a/lib/umd.js +++ /dev/null @@ -1,11 +0,0 @@ -import Draggable from './Draggable'; -import DraggableCore from './DraggableCore'; - -// Previous versions of this lib exported as the root export. As to not break -// them, or TypeScript, we export *both* as the root and as 'default'. -// See https://github.com/mzabriskie/react-draggable/pull/254 -// and https://github.com/mzabriskie/react-draggable/issues/266 -Draggable.default = Draggable; -Draggable.DraggableCore = DraggableCore; - -export default Draggable; diff --git a/package.json b/package.json index 13b1ef8e..d51b6355 100644 --- a/package.json +++ b/package.json @@ -2,10 +2,12 @@ "name": "react-draggable", "version": "4.0.3", "description": "React draggable component", - "main": "index.js", - "browser": "web/react-draggable.min.js", + "main": "build/cjs/cjs.js", + "browser": "build/web/react-draggable.min.js", + "module": "build/module/Draggable.js", "scripts": { "test": "make test", + "test-phantom": "make test-phantom", "test-debug": "karma start --browsers=Chrome", "test-ie": "karma start --browsers=IE", "dev": "make dev", diff --git a/specs/main.js b/specs/draggable-phantom.spec.jsx similarity index 100% rename from specs/main.js rename to specs/draggable-phantom.spec.jsx diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 83725154..f0b0734a 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -3,7 +3,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react-dom/test-utils'; import ShallowRenderer from 'react-test-renderer/shallow'; -import Draggable, {DraggableCore} from '../index-src'; +import Draggable, {DraggableCore} from '../lib/Draggable'; import FrameComponent from 'react-frame-component'; import assert from 'power-assert'; import _ from 'lodash'; diff --git a/webpack.config.js b/webpack.config.js index cecbdb4d..34c32bfa 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -2,14 +2,14 @@ const path = require('path'); const webpack = require('webpack'); const TerserPlugin = require('terser-webpack-plugin'); -// Grabbed in .babelrc.js to switch on preset-env target. -// If we're in webpack, we compile for browsers, otherwise we compile for modern Node. -process.env.IS_WEBPACK = "1"; +// Grabbed in .babelrc.js to switch on transpiling modules. +// We want webpack to handle modules if possible. +// This can be overridden and webpack will handle babelified CJS. +process.env.BABEL_MODULE_TYPE = process.env.BABEL_MODULE_TYPE || 'module'; module.exports = (env, argv) => ({ entry: { - "react-draggable": "./index-src.js", - "react-draggable.min": "./index-src.js", + 'react-draggable.min': './lib/cjs.js', }, output: { filename: '[name].js', @@ -17,13 +17,13 @@ module.exports = (env, argv) => ({ devtoolModuleFilenameTemplate: '../[resource-path]', library: 'ReactDraggable', libraryTarget: 'umd', - path: path.resolve(__dirname, 'web'), + path: path.resolve(__dirname, 'build', 'web'), }, devServer: { contentBase: '.', hot: true, open: true, - openPage: '/example/index.html', + openPage: 'example/index.html', writeToDisk: true, }, devtool: 'source-map', From 1931791991f7dd9630a8b56a43f699d3438adb3e Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 25 Oct 2019 13:39:45 -0400 Subject: [PATCH 338/412] release v4.1.0 --- CHANGELOG.md | 17 +++++++++++++++++ package.json | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7eb8099f..5694b9ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +### 4.1.0 (Oct 25, 2019) + +- Add `"module"` to `package.json`. There are now three builds: + * **`"main"`**: ES5-compatible CJS build, suitable for most use cases with maximum compatibility. + - For legacy reasons, this has exports of the following shape, which ensures no surprises in CJS or ESM polyfilled environments: + ```js + module.exports = Draggable; + module.exports.default = Draggable; + module.exports.DraggableCore = DraggableCore; + ``` + * **`"web"`**: Minified UMD bundle exporting to `window.ReactDraggable` with the same ES compatibility as the "main" build. + * **`"module"`**: ES6-compatible build using import/export. + + This should fix issues like https://github.com/STRML/react-resizable/issues/113 while allowing modern bundlers to consume esm modules in the future. + + No compatibility changes are expected. + ### 4.0.3 (Sep 10, 2019) - Add typings and sourcemap to published npm package. diff --git a/package.json b/package.json index d51b6355..b1315810 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.0.3", + "version": "4.1.0", "description": "React draggable component", "main": "build/cjs/cjs.js", "browser": "build/web/react-draggable.min.js", From 70fe21f9d404637eb9e8cf7e09f979ba48b020ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Do=C4=8Dkal?= Date: Thu, 14 Nov 2019 12:44:28 +1300 Subject: [PATCH 339/412] feat(DraggableCore): apply scale property while dragging an element (#438) --- lib/DraggableCore.js | 7 ++++ lib/utils/domFns.js | 6 ++-- lib/utils/positionFns.js | 2 +- specs/draggable.spec.jsx | 76 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 4 deletions(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 4fbabfd2..2429a612 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -67,6 +67,7 @@ export type DraggableCoreProps = { onDrag: DraggableEventHandler, onStop: DraggableEventHandler, onMouseDown: (e: MouseEvent) => void, + scale: number, }; // @@ -185,6 +186,11 @@ export default class DraggableCore extends React.Component's events diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index f0b0734a..376f2afe 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -683,6 +683,44 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 200, 200, 300, 300); }); + + it('should call back with correct position when parent element is 2x scaled', function() { + function onDrag(event, data) { + // visually it will look like 100, because parent is 2x scaled + assert(data.x === 50); + assert(data.y === 50); + assert(data.deltaX === 50); + assert(data.deltaY === 50); + assert(data.node === ReactDOM.findDOMNode(drag)); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); + + it('should call back with correct position when parent element is 0.5x scaled', function() { + function onDrag(event, data) { + // visually it will look like 100, because parent is 0.5x scaled + assert(data.x === 200); + assert(data.y === 200); + assert(data.deltaX === 200); + assert(data.deltaY === 200); + assert(data.node === ReactDOM.findDOMNode(drag)); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); }); describe('DraggableCore callbacks', function () { @@ -703,6 +741,44 @@ describe('react-draggable', function () { // (element, fromX, fromY, toX, toY) simulateMovementFromTo(drag, 0, 0, 100, 100); }); + + it('should call back with correct position when parent element is 2x scaled', function() { + function onDrag(event, data) { + // visually it will look like 100, because parent is 2x scaled + assert(data.x === 50); + assert(data.y === 50); + assert(data.deltaX === 50); + assert(data.deltaY === 50); + assert(data.node === ReactDOM.findDOMNode(drag)); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); + + it('should call back with correct position when parent element is 0.5x scaled', function() { + function onDrag(event, data) { + // visually it will look like 100, because parent is 0.5x scaled + assert(data.x === 200); + assert(data.y === 200); + assert(data.deltaX === 200); + assert(data.deltaY === 200); + assert(data.node === ReactDOM.findDOMNode(drag)); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); }); From 7390ad09b67d257af69a4f2af783eda6367f492f Mon Sep 17 00:00:00 2001 From: erictooth <1023110+erictooth@users.noreply.github.com> Date: Thu, 5 Dec 2019 18:48:12 -0800 Subject: [PATCH 340/412] Add transform-inline-environment-variables Babel plugin (#445) --- .babelrc.js | 1 + package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/.babelrc.js b/.babelrc.js index 559ed47f..6f48c713 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -21,6 +21,7 @@ module.exports = { "plugins": [ "@babel/plugin-transform-flow-comments", "@babel/plugin-proposal-class-properties", + "transform-inline-environment-variables" ], "env": { "test": { diff --git a/package.json b/package.json index b1315810..2547eadb 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "babel-eslint": "^10.0.3", "babel-loader": "^8.0.6", "babel-plugin-espower": "^3.0.1", + "babel-plugin-transform-inline-environment-variables": "^0.4.3", "eslint": "^6.2.2", "eslint-plugin-react": "^7.5.1", "flow-bin": "^0.69.0", From 91993655b7cc853305944dbb87d9cc478b32cde5 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 5 Dec 2019 18:49:33 -0800 Subject: [PATCH 341/412] chore(yarn): update lockfile --- yarn.lock | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/yarn.lock b/yarn.lock index a7a9bea2..228ce1d9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1301,6 +1301,11 @@ babel-plugin-espower@^3.0.1: espurify "^1.6.0" estraverse "^4.1.1" +babel-plugin-transform-inline-environment-variables@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.3.tgz#a3b09883353be8b5e2336e3ff1ef8a5d93f9c489" + integrity sha1-o7CYgzU76LXiM24/8e+KXZP5xIk= + backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" From 45075a8cb3c5d4a833ca1e86c10b17ca0c060a67 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 5 Dec 2019 18:51:52 -0800 Subject: [PATCH 342/412] release v4.2.0 --- CHANGELOG.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5694b9ab..b775ac6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 4.2.0 (Dec 2, 2019) + +- Fix: Apply `scale` parameter also while dragging an element. [#438](https://github.com/mzabriskie/react-draggable/pull/438) +- Fix: Don't ship `process.env.DRAGGABLE_DEBUG` checks in cjs/esm. [#445](https://github.com/mzabriskie/react-draggable/pull/445) + ### 4.1.0 (Oct 25, 2019) - Add `"module"` to `package.json`. There are now three builds: diff --git a/package.json b/package.json index 2547eadb..bc89f1b0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.1.0", + "version": "4.2.0", "description": "React draggable component", "main": "build/cjs/cjs.js", "browser": "build/web/react-draggable.min.js", From 9825116fdcca38e9945171cc5b50edad4023fb8c Mon Sep 17 00:00:00 2001 From: David Schnurr Date: Wed, 8 Jan 2020 10:21:43 -0800 Subject: [PATCH 343/412] Fix for defocusing text inputs #315 --- lib/utils/domFns.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 6963da72..87809bd8 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -158,14 +158,20 @@ export function addUserSelectStyles(doc: ?Document) { } export function removeUserSelectStyles(doc: ?Document) { + if (!doc) return; try { - if (doc && doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); + if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE if (doc.selection) { // $FlowIgnore: IE doc.selection.empty(); } else { - window.getSelection().removeAllRanges(); // remove selection caused by scroll + // Remove selection caused by scroll, unless it's a focused input + // (we use doc.defaultView in case we're in an iframe) + const selection = (doc.defaultView || window).getSelection(); + if (selection && selection.type !== 'Caret') { + selection.removeAllRanges(); + } } } catch (e) { // probably IE From e68b12e10d303b643dad33e5c53583afb2ac706a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 3 Apr 2020 09:18:46 -0400 Subject: [PATCH 344/412] chore(pkg): upgrade devDeps --- package.json | 58 +- yarn.lock | 3687 +++++++++++++++++++++++++++++--------------------- 2 files changed, 2170 insertions(+), 1575 deletions(-) diff --git a/package.json b/package.json index bc89f1b0..cd2526b4 100644 --- a/package.json +++ b/package.json @@ -39,29 +39,29 @@ }, "homepage": "https://github.com/mzabriskie/react-draggable", "devDependencies": { - "@babel/cli": "^7.0.0", - "@babel/core": "^7.5.5", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-transform-flow-comments": "^7.0.0", - "@babel/preset-env": "^7.0.0", - "@babel/preset-flow": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "@types/react": "^16.0.25", - "@types/react-dom": "^16.0.3", - "babel-eslint": "^10.0.3", - "babel-loader": "^8.0.6", + "@babel/cli": "^7.8.4", + "@babel/core": "^7.9.0", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-transform-flow-comments": "^7.8.3", + "@babel/preset-env": "^7.9.0", + "@babel/preset-flow": "^7.9.0", + "@babel/preset-react": "^7.9.4", + "@types/react": "^16.9.32", + "@types/react-dom": "^16.9.6", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.1.0", "babel-plugin-espower": "^3.0.1", "babel-plugin-transform-inline-environment-variables": "^0.4.3", - "eslint": "^6.2.2", - "eslint-plugin-react": "^7.5.1", - "flow-bin": "^0.69.0", - "jasmine-core": "^3.4.0", - "karma": "^4.2.0", + "eslint": "^6.8.0", + "eslint-plugin-react": "^7.19.0", + "flow-bin": "^0.122.0", + "jasmine-core": "^3.5.0", + "karma": "^4.4.1", "karma-chrome-launcher": "^3.1.0", "karma-cli": "2.0.0", - "karma-firefox-launcher": "^1.0.1", + "karma-firefox-launcher": "^1.3.0", "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^2.0.1", + "karma-jasmine": "^3.1.1", "karma-phantomjs-launcher": "^1.0.4", "karma-phantomjs-shim": "^1.5.0", "karma-webpack": "^4.0.2", @@ -69,19 +69,19 @@ "phantomjs-prebuilt": "^2.1.16", "power-assert": "^1.4.4", "pre-commit": "^1.2.2", - "puppeteer": "^1.19.0", - "react": "^16.3", - "react-dom": "^16.3", + "puppeteer": "^2.1.1", + "react": "^16.13.1", + "react-dom": "^16.13.1", "react-frame-component": "^2.0.0", - "react-test-renderer": "^16.1.1", + "react-test-renderer": "^16.13.1", "semver": "^6.3.0", "static-server": "^3.0.0", - "terser-webpack-plugin": "^1.4.1", - "typescript": "^3.5.3", - "uglify-js": "^3.2.0", - "webpack": "^4.39.2", - "webpack-cli": "^3.3.7", - "webpack-dev-server": "^3.8.0" + "terser-webpack-plugin": "^2.3.5", + "typescript": "^3.8.3", + "uglify-js": "^3.8.1", + "webpack": "^4.42.1", + "webpack-cli": "^3.3.11", + "webpack-dev-server": "^3.10.3" }, "precommit": [ "lint", @@ -91,4 +91,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 228ce1d9..19549073 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,769 +2,905 @@ # yarn lockfile v1 -"@babel/cli@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.5.5.tgz#bdb6d9169e93e241a08f5f7b0265195bf38ef5ec" - integrity sha512-UHI+7pHv/tk9g6WXQKYz+kmXTI77YtuY3vqC59KIqcoWEjsJJSG6rAxKaLsgj3LDyadsPrCB929gVOKM6Hui0w== +"@babel/cli@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.8.4.tgz#505fb053721a98777b2b175323ea4f090b7d3c1c" + integrity sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag== dependencies: - commander "^2.8.1" + commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" lodash "^4.17.13" - mkdirp "^0.5.1" - output-file-sync "^2.0.0" + make-dir "^2.1.0" slash "^2.0.0" source-map "^0.5.0" optionalDependencies: - chokidar "^2.0.4" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" - integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helpers" "^7.5.5" - "@babel/parser" "^7.5.5" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - convert-source-map "^1.1.0" + chokidar "^2.1.8" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" + integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== + dependencies: + browserslist "^4.9.1" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + convert-source-map "^1.7.0" debug "^4.1.0" - json5 "^2.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" - integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== +"@babel/generator@^7.0.0", "@babel/generator@^7.8.3", "@babel/generator@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" + integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== dependencies: - "@babel/types" "^7.5.5" + "@babel/types" "^7.9.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" - trim-right "^1.0.1" -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.8.3" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-builder-react-jsx@^7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" - integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== +"@babel/helper-builder-react-jsx-experimental@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.0.tgz#066d80262ade488f9c1b1823ce5db88a4cedaa43" + integrity sha512-3xJEiyuYU4Q/Ar9BsHisgdxZsRlsShMe90URZ0e6przL26CCs8NJbDoxH94kKT17PcxlMhsCAwZd90evCo26VQ== dependencies: - "@babel/types" "^7.3.0" - esutils "^2.0.0" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-module-imports" "^7.8.3" + "@babel/types" "^7.9.0" -"@babel/helper-call-delegate@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" - integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== +"@babel/helper-builder-react-jsx@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" + integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== dependencies: - "@babel/helper-hoist-variables" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/types" "^7.9.0" -"@babel/helper-create-class-features-plugin@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" - integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== +"@babel/helper-compilation-targets@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" + integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.5.5" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/compat-data" "^7.8.6" + browserslist "^4.9.1" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" -"@babel/helper-define-map@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" - integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.5.5" +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz#243a5b46e2f8f0f674dc1387631eb6b28b851de0" + integrity sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + +"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" + integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" + integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" lodash "^4.17.13" -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" - integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.8.3" -"@babel/helper-hoist-variables@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" - integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" + integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== dependencies: - "@babel/types" "^7.4.4" + "@babel/types" "^7.8.3" -"@babel/helper-member-expression-to-functions@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" - integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== dependencies: - "@babel/types" "^7.5.5" + "@babel/types" "^7.8.3" -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== +"@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" - integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/template" "^7.4.4" - "@babel/types" "^7.5.5" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.9.0" lodash "^4.17.13" -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" - integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.8.3" -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" + integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-replace-supers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" - integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.5.5" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== - dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" - -"@babel/helpers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" - integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== - dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== - dependencies: +"@babel/helper-remap-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" + integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-wrap-function" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-validator-identifier@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" + integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" + integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + +"@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" chalk "^2.0.0" - esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" - integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@^7.0.0", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" - integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== +"@babel/plugin-proposal-class-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.5" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-proposal-dynamic-import@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" - integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== +"@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-object-rest-spread@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" - integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== +"@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" - integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== +"@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" + integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-syntax-flow@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" - integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" + integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.8" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== +"@babel/plugin-syntax-flow@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz#f2c883bd61a6316f2c89380ae5122f923ba4527f" + integrity sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== +"@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-async-to-generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" - integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-block-scoping@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" - integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== +"@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-classes@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" - integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.5.5" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - "@babel/helper-split-export-declaration" "^7.4.4" - globals "^11.1.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-destructuring@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" - integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" - integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== +"@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" - integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== +"@babel/plugin-transform-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" + integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-flow-comments@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.5.5.tgz#1cc0a3640f896c3457db09fa705da1381feba4dd" - integrity sha512-tz3MWUB0MDIlFVWFeThSvY34J8JbLHJLMVkNJ3dce7M2Py1rMFHw+df3E4N5bW4C8rPTJIBl/6SE1vKfTndxJQ== +"@babel/plugin-transform-block-scoping@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" + integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== dependencies: - "@babel/generator" "^7.5.5" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + lodash "^4.17.13" -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" - integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" +"@babel/plugin-transform-classes@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" + integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + globals "^11.1.0" -"@babel/plugin-transform-for-of@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" - integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== +"@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-function-name@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" - integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== +"@babel/plugin-transform-destructuring@^7.8.3": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" + integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" + integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" - integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== +"@babel/plugin-transform-duplicate-keys@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" + integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" - integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-commonjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" - integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== +"@babel/plugin-transform-flow-comments@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.8.3.tgz#0a7e6c49224ac24271e4da25774da0600605ef2c" + integrity sha512-SEmbGPsaUig0x3QkB/Nai3Snk1sRxODBN2EGjdQqgBb5TMcbEejV2TtMGi2XiLmw9Cy/BvJX7CAnfJMctuyglg== dependencies: - "@babel/helper-module-transforms" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/generator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-flow" "^7.8.3" -"@babel/plugin-transform-modules-systemjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" - integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== +"@babel/plugin-transform-flow-strip-types@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" + integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== dependencies: - "@babel/helper-hoist-variables" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-flow" "^7.8.3" -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" - integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== +"@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" - integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== +"@babel/plugin-transform-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" + integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== dependencies: - regexp-tree "^0.1.6" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-new-target@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" - integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-object-super@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" - integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-parameters@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" - integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" + integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== dependencies: - "@babel/helper-call-delegate" "^7.4.4" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-property-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" - integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" + integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" - integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" + integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" - integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" + integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" - integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" - integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== +"@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== dependencies: - "@babel/helper-builder-react-jsx" "^7.3.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-regenerator@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" - integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== +"@babel/plugin-transform-object-super@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" + integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== dependencies: - regenerator-transform "^0.14.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" - integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== +"@babel/plugin-transform-parameters@^7.8.7": + version "7.9.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" + integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-spread@^7.2.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" - integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== +"@babel/plugin-transform-react-display-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" + integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== +"@babel/plugin-transform-react-jsx-development@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz#3c2a130727caf00c2a293f0aed24520825dbf754" + integrity sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-builder-react-jsx-experimental" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" -"@babel/plugin-transform-template-literals@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" - integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-unicode-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" - integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/preset-env@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" - integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-dynamic-import" "^7.5.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.5.5" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.5.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.5.5" - "@babel/plugin-transform-classes" "^7.5.5" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.5.0" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.4.4" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.5.0" - "@babel/plugin-transform-modules-systemjs" "^7.5.0" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.4.5" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.5.5" - browserslist "^4.6.0" - core-js-compat "^3.1.1" +"@babel/plugin-transform-react-jsx-self@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b" + integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx-source@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" + integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx@^7.9.4": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" + integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== + dependencies: + "@babel/helper-builder-react-jsx" "^7.9.0" + "@babel/helper-builder-react-jsx-experimental" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" + integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" + integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + +"@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typeof-symbol@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" + integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-unicode-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" + integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/preset-env@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" + integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== + dependencies: + "@babel/compat-data" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.0" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.9.0" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.8.7" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.0" + browserslist "^4.9.1" + core-js-compat "^3.6.2" invariant "^2.2.2" - js-levenshtein "^1.1.3" + levenary "^1.1.1" semver "^5.5.0" -"@babel/preset-flow@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" - integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ== +"@babel/preset-flow@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.9.0.tgz#fee847c3e090b0b2d9227c1949e4da1d1379280d" + integrity sha512-88uSmlshIrlmPkNkEcx3UpSZ6b8n0UGBq0/0ZMZCF/uxAW0XIAUuDHBhIOAh0pvweafH4RxOwi/H3rWhtqOYPA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-flow-strip-types" "^7.9.0" -"@babel/preset-react@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" - integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - -"@babel/template@^7.1.0", "@babel/template@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" + esutils "^2.0.2" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" - integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.5" - "@babel/types" "^7.5.5" +"@babel/preset-react@^7.9.4": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz#c6c97693ac65b6b9c0b4f25b948a8f665463014d" + integrity sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-react-display-name" "^7.8.3" + "@babel/plugin-transform-react-jsx" "^7.9.4" + "@babel/plugin-transform-react-jsx-development" "^7.9.0" + "@babel/plugin-transform-react-jsx-self" "^7.9.0" + "@babel/plugin-transform-react-jsx-source" "^7.9.0" + +"@babel/runtime-corejs3@^7.8.3": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz#26fe4aa77e9f1ecef9b776559bbb8e84d34284b7" + integrity sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.8.4": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" + integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" - integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== +"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" + integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== dependencies: - esutils "^2.0.2" + "@babel/helper-validator-identifier" "^7.9.0" lodash "^4.17.13" to-fast-properties "^2.0.0" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -779,180 +915,184 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/mime-types@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.0.tgz#9ca52cda363f699c69466c2a6ccdaad913ea7a73" + integrity sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM= + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "12.7.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44" - integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg== + version "13.11.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.0.tgz#390ea202539c61c8fa6ba4428b57e05bc36dc47b" + integrity sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ== "@types/prop-types@*": - version "15.7.1" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.1.tgz#f1a11e7babb0c3cad68100be381d1e064c68f1f6" - integrity sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg== + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/react-dom@^16.0.3": - version "16.9.0" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.0.tgz#ba6ddb00bf5de700b0eb91daa452081ffccbfdea" - integrity sha512-OL2lk7LYGjxn4b0efW3Pvf2KBVP0y1v3wip1Bp7nA79NkOpElH98q3WdCEdDj93b2b0zaeBG9DvriuKjIK5xDA== +"@types/react-dom@^16.9.6": + version "16.9.6" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.6.tgz#9e7f83d90566521cc2083be2277c6712dcaf754c" + integrity sha512-S6ihtlPMDotrlCJE9ST1fRmYrQNNwfgL61UB4I1W7M6kPulUKx9fXAleW5zpdIjUQ4fTaaog8uERezjsGUj9HQ== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.0.25": - version "16.9.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.2.tgz#6d1765431a1ad1877979013906731aae373de268" - integrity sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg== +"@types/react@*", "@types/react@^16.9.32": + version "16.9.32" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.32.tgz#f6368625b224604148d1ddf5920e4fefbd98d383" + integrity sha512-fmejdp0CTH00mOJmxUPPbWCEBWPvRIL4m8r0qD+BSDUqmutPyGQCHifzMpMzdvZwROdEdL78IuZItntFWgPXHQ== dependencies: "@types/prop-types" "*" csstype "^2.2.0" -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -983,37 +1123,43 @@ acorn-es7-plugin@^1.0.12: resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" integrity sha1-8u4fMiipDurRJF+asZIusucdM2s= -acorn-jsx@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" - integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== acorn@^5.0.0: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" - integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ== +acorn@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= -agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== +agent-base@5: + version "5.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" + integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== + +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== dependencies: - es6-promisify "^5.0.0" + clean-stack "^2.0.0" + indent-string "^4.0.0" ajv-errors@^1.0.0: version "1.0.1" @@ -1025,12 +1171,12 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== dependencies: - fast-deep-equal "^2.0.1" + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" @@ -1040,10 +1186,12 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" ansi-html@0.0.7: version "0.0.7" @@ -1070,6 +1218,11 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" @@ -1082,6 +1235,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1090,10 +1251,10 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz#2fb624fe0e84bccab00afee3d0006ed310f22f09" - integrity sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g== +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1148,13 +1309,14 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= +array-includes@^3.0.3, array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" array-union@^1.0.1: version "1.0.2" @@ -1227,11 +1389,6 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -1244,7 +1401,7 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -1255,31 +1412,32 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + version "1.9.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== -babel-eslint@^10.0.3: - version "10.0.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" - integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-loader@^8.0.6: - version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== +babel-loader@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" pify "^4.0.1" + schema-utils "^2.6.5" babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" @@ -1378,15 +1536,22 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + blob@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== bluebird@^3.3.0, bluebird@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" - integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -1445,7 +1610,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1516,14 +1681,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.6.0, browserslist@^4.6.6: - version "4.6.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" - integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== +browserslist@^4.8.3, browserslist@^4.9.1: + version "4.11.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" + integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== dependencies: - caniuse-lite "^1.0.30000984" - electron-to-chromium "^1.3.191" - node-releases "^1.1.25" + caniuse-lite "^1.0.30001038" + electron-to-chromium "^1.3.390" + node-releases "^1.1.53" + pkg-up "^2.0.0" buffer-alloc-unsafe@^1.1.0: version "1.1.0" @@ -1538,6 +1704,11 @@ buffer-alloc@^1.2.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" @@ -1559,9 +1730,9 @@ buffer-xor@^1.0.3: integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -1583,9 +1754,9 @@ bytes@3.1.0: integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^12.0.2: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -1603,6 +1774,30 @@ cacache@^12.0.2: unique-filename "^1.1.1" y18n "^4.0.0" +cacache@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== + dependencies: + chownr "^1.1.2" + figgy-pudding "^3.5.1" + fs-minipass "^2.0.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.0.0" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + p-map "^3.0.0" + promise-inflight "^1.0.1" + rimraf "^2.7.1" + ssri "^7.0.0" + unique-filename "^1.1.1" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1648,17 +1843,17 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30000984: - version "1.0.30000989" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" - integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== +caniuse-lite@^1.0.30001038: + version "1.0.30001038" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" + integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1678,12 +1873,20 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.6: +chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -1703,24 +1906,24 @@ chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.6: fsevents "^1.2.7" chokidar@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.2.tgz#0d1cd6d04eb2df0327446188cd13736a3367d681" - integrity sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA== - dependencies: - anymatch "^3.0.1" - braces "^3.0.2" - glob-parent "^5.0.0" - is-binary-path "^2.1.0" - is-glob "^4.0.1" - normalize-path "^3.0.0" - readdirp "^3.1.1" + version "3.3.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" + integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.3.0" optionalDependencies: - fsevents "^2.0.6" + fsevents "~2.1.2" -chownr@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" - integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== +chownr@^1.1.1, chownr@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chrome-trace-event@^1.0.2: version "1.0.2" @@ -1752,12 +1955,17 @@ classnames@^2.2.5: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: - restore-cursor "^2.0.0" + restore-cursor "^3.1.0" cli-width@^2.0.0: version "2.2.0" @@ -1811,15 +2019,27 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + colors@^1.1.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" @@ -1828,10 +2048,15 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.20.0, commander@^2.3.0, commander@^2.8.1, commander@~2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +commander@^2.20.0, commander@^2.3.0, commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== commondir@^1.0.1: version "1.0.1" @@ -1859,11 +2084,11 @@ component-inherit@0.0.3: integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= compressible@~2.0.16: - version "2.0.17" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" - integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: - mime-db ">= 1.40.0 < 2" + mime-db ">= 1.43.0 < 2" compression@^1.7.4: version "1.7.4" @@ -1883,7 +2108,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.4.7, concat-stream@^1.5.0: +concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1909,11 +2134,9 @@ connect@^3.6.0: utils-merge "1.0.1" console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= - dependencies: - date-now "^0.1.4" + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" @@ -1937,10 +2160,10 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.1.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== +convert-source-map@^1.1.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" @@ -1976,23 +2199,23 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" - integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== +core-js-compat@^3.6.2: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" + integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== dependencies: - browserslist "^4.6.6" - semver "^6.3.0" + browserslist "^4.8.3" + semver "7.0.0" -core-js@^2.0.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" - integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== +core-js-pure@^3.0.0: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" + integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== -core-js@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09" - integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw== +core-js@^2.0.0: + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2068,19 +2291,19 @@ crypto-browserify@^3.11.0: randomfill "^1.0.3" csstype@^2.2.0: - version "2.6.6" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41" - integrity sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg== + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= dashdash@^1.12.0: version "1.14.1" @@ -2094,32 +2317,27 @@ date-format@^2.0.0: resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -2138,9 +2356,16 @@ decode-uri-component@^0.2.0: integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-equal@^1.0.0, deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" deep-extend@^0.6.0: version "0.6.0" @@ -2218,9 +2443,9 @@ depd@~1.1.2: integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -2341,15 +2566,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.191: - version "1.3.241" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.241.tgz#859dc49ab7f90773ed698767372d384190f60cb1" - integrity sha512-Gb9E6nWZlbgjDDNe5cAvMJixtn79krNJ70EDpq/M10lkGo7PGtBUe7Y0CYVHsBScRwi6ybCS+YetXAN9ysAHDg== +electron-to-chromium@^1.3.390: + version "1.3.395" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.395.tgz#2c531a0477bcc41deb440877d1f27509ed286aed" + integrity sha512-kdn2cX6hZXDdz/O2Q8tZscITlsSv1a/7bOq/fQs7QAJ9iaRlnhZPccarNhxZv1tXgmgwCnKp/1lJNYLOG8Dxiw== elliptic@^6.0.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" - integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg== + version "6.5.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2364,11 +2589,21 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + empower-core@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-1.2.0.tgz#ce3fb2484d5187fa29c23fba8344b0b2fdf5601c" @@ -2391,9 +2626,9 @@ encodeurl@~1.0.2: integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" @@ -2437,7 +2672,7 @@ engine.io@~3.2.0: engine.io-parser "~2.1.0" ws "~3.3.1" -enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: +enhanced-resolve@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== @@ -2446,6 +2681,15 @@ enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: memory-fs "^0.4.0" tapable "^1.0.0" +enhanced-resolve@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" @@ -2458,22 +2702,27 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== dependencies: - es-to-primitive "^1.2.0" + es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" @@ -2484,13 +2733,6 @@ es6-promise@^4.0.3: resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2501,20 +2743,23 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-plugin-react@^7.5.1: - version "7.14.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" - integrity sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA== +eslint-plugin-react@^7.19.0: + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" + integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== dependencies: - array-includes "^3.0.3" + array-includes "^3.1.1" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.1.0" - object.entries "^1.1.0" - object.fromentries "^2.0.0" - object.values "^1.1.0" + jsx-ast-utils "^2.2.3" + object.entries "^1.1.1" + object.fromentries "^2.0.2" + object.values "^1.1.1" prop-types "^15.7.2" - resolve "^1.10.1" + resolve "^1.15.1" + semver "^6.3.0" + string.prototype.matchall "^4.0.2" + xregexp "^4.3.0" eslint-scope@^4.0.3: version "4.0.3" @@ -2532,22 +2777,22 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" - integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== dependencies: - eslint-visitor-keys "^1.0.0" + eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.2.2.tgz#03298280e7750d81fcd31431f3d333e43d93f24f" - integrity sha512-mf0elOkxHbdyGX1IJEUsNBzCDdyoUgljF3rRlgfyYh0pwGnreLc0jjD6ZuleOibjmnUWZLY2eXwSooeOgGJ2jw== +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" @@ -2556,19 +2801,19 @@ eslint@^6.2.2: debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" - eslint-utils "^1.4.2" + eslint-utils "^1.4.3" eslint-visitor-keys "^1.1.0" - espree "^6.1.1" + espree "^6.1.2" esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" glob-parent "^5.0.0" - globals "^11.7.0" + globals "^12.1.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.4.1" + inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" @@ -2577,7 +2822,7 @@ eslint@^6.2.2: minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.2" + optionator "^0.8.3" progress "^2.0.0" regexpp "^2.0.1" semver "^6.1.2" @@ -2597,13 +2842,13 @@ espower-location-detector@^1.0.0: source-map "^0.5.0" xtend "^4.0.0" -espree@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.1.tgz#7f80e5f7257fc47db450022d723e356daeb1e5de" - integrity sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ== +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== dependencies: - acorn "^7.0.0" - acorn-jsx "^5.0.2" + acorn "^7.1.1" + acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" esprima@^4.0.0: @@ -2619,11 +2864,11 @@ espurify@^1.6.0: core-js "^2.0.0" esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe" + integrity sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q== dependencies: - estraverse "^4.0.0" + estraverse "^5.0.0" esrecurse@^4.1.0: version "4.2.1" @@ -2637,7 +2882,12 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -esutils@^2.0.0, esutils@^2.0.2: +estraverse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" + integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== + +esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== @@ -2647,15 +2897,15 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" + integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== eventsource@^1.0.7: version "1.0.7" @@ -2785,14 +3035,14 @@ extglob@^2.0.4: to-regex "^3.0.1" extract-zip@^1.6.5, extract-zip@^1.6.6: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" extsprintf@1.3.0: version "1.3.0" @@ -2804,17 +3054,17 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.4: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -2833,22 +3083,22 @@ faye-websocket@~0.11.1: dependencies: websocket-driver ">=0.5.1" -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" @@ -2864,6 +3114,11 @@ file-size@0.0.5: resolved "https://registry.yarnpkg.com/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" integrity sha1-BX1Dw6Ptc12j+Q1gUqs4Dx5tXjs= +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -2894,7 +3149,7 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -2903,6 +3158,22 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-cache-dir@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -2910,6 +3181,14 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + findup-sync@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -2930,14 +3209,14 @@ flat-cache@^2.0.1: write "1.0.3" flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@^0.69.0: - version "0.69.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.69.0.tgz#053159a684a6051fcbf0b71a2eb19a9679082da6" - integrity sha512-SC5kiOiMk+8o1N2ZQ1mBfi0qBDYM+r6ZFQS7s+zXtyKrkbtCP+6JRTVvO3KXOnv568SK1G+Kg8/LlJwgyR+8Ug== +flow-bin@^0.122.0: + version "0.122.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.122.0.tgz#c723a2b33b1a70bd10204704ae1dc776d5d89d79" + integrity sha512-my8N5jgl/A+UVby9E7NDppHdhLgRbWgKbmFZSx2MSYMRh3d9YGnM2MM+wexpUpl0ftY1IM6ZcUwaAhrypLyvlA== flush-write-stream@^1.0.0: version "1.1.1" @@ -2948,11 +3227,11 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" - integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== + version "1.11.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" + integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA== dependencies: - debug "^3.2.6" + debug "^3.0.0" for-in@^1.0.2: version "1.0.2" @@ -3017,11 +3296,18 @@ fs-extra@^7.0.1: universalify "^0.1.0" fs-minipass@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" - integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: - minipass "^2.2.1" + minipass "^2.6.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" fs-readdir-recursive@^1.1.0: version "1.1.0" @@ -3044,17 +3330,17 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + version "1.2.12" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" + integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== dependencies: + bindings "^1.5.0" nan "^2.12.1" - node-pre-gyp "^0.12.0" -fsevents@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" - integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== +fsevents@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== function-bind@^1.1.1: version "1.1.1" @@ -3080,6 +3366,11 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" @@ -3117,17 +3408,17 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== +glob-parent@^5.0.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3172,11 +3463,18 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -globals@^11.1.0, globals@^11.7.0: +globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -3188,22 +3486,22 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== handle-thing@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" - integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0: +har-validator@~5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== @@ -3235,10 +3533,15 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== has-unicode@^2.0.0: version "2.0.1" @@ -3276,7 +3579,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -3380,7 +3683,7 @@ http-errors@~1.7.2: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= -http-proxy-middleware@^0.19.1: +http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== @@ -3391,11 +3694,11 @@ http-proxy-middleware@^0.19.1: micromatch "^3.1.10" http-proxy@^1.13.0, http-proxy@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== dependencies: - eventemitter3 "^3.0.0" + eventemitter3 "^4.0.0" follow-redirects "^1.0.0" requires-port "^1.0.0" @@ -3413,13 +3716,13 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" - integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== +https-proxy-agent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" + integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== dependencies: - agent-base "^4.3.0" - debug "^3.1.0" + agent-base "5" + debug "4" iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" @@ -3439,9 +3742,9 @@ iferr@^0.1.5: integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: minimatch "^3.0.4" @@ -3451,9 +3754,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== import-fresh@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" - integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -3471,12 +3774,17 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= -infer-owner@^1.0.3: +infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== @@ -3509,23 +3817,23 @@ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inquirer@^6.4.1: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== +inquirer@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" + integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" cli-width "^2.0.0" external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" through "^2.3.6" internal-ip@^4.3.0: @@ -3536,12 +3844,21 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" +internal-slot@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" + integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== + dependencies: + es-abstract "^1.17.0-next.1" + has "^1.0.3" + side-channel "^1.0.2" + interpret@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== -invariant@^2.2.2: +invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -3563,20 +3880,15 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== - -ipaddr.js@^1.9.0: +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute-url@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.1.tgz#e315cbdcbbc3d6789532d591954ac78a0e5049f6" - integrity sha512-c2QjUwuMxLsld90sj3xYzpFYWJtuxkIn1f5ua9RTEYJt/vV2IsM+Py00/6qjV7qExgifUvt7qfyBGBBKm+2iBg== +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== is-accessor-descriptor@^0.1.6: version "0.1.6" @@ -3592,6 +3904,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -3599,7 +3916,7 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-binary-path@^2.1.0: +is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== @@ -3611,10 +3928,10 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== is-data-descriptor@^0.1.4: version "0.1.4" @@ -3631,9 +3948,9 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-descriptor@^0.1.0: version "0.1.6" @@ -3682,6 +3999,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -3689,7 +4011,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -3727,11 +4049,6 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3744,24 +4061,29 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== dependencies: - has "^1.0.1" + has "^1.0.3" is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: - has-symbols "^1.0.0" + has-symbols "^1.0.1" is-typedarray@~1.0.0: version "1.0.0" @@ -3784,9 +4106,9 @@ is-wsl@^1.1.0: integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= is-wsl@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.0.tgz#94369bbeb2249ef07b831b1b08590e686330ccbb" - integrity sha512-pFTjpv/x5HRj8kbZ/Msxi9VrvtOMRBqaDi3OIcbwPI3OuH+r3lLxVWukLITBaOGJIbA/w2+M1eVmVa4XNQlAmQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" @@ -3827,15 +4149,18 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jasmine-core@^3.3, jasmine-core@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3" - integrity sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg== +jasmine-core@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4" + integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA== -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== +jest-worker@^25.1.0: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.6.tgz#d1292625326794ce187c38f51109faced3846c58" + integrity sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -3902,12 +4227,12 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== +json5@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" + integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" jsonfile@^2.1.0: version "2.4.0" @@ -3933,10 +4258,10 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb" - integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ== +jsx-ast-utils@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" + integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== dependencies: array-includes "^3.0.3" object.assign "^4.1.0" @@ -3955,10 +4280,10 @@ karma-cli@2.0.0: dependencies: resolve "^1.3.3" -karma-firefox-launcher@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.2.0.tgz#64fe03dd10300f9754d48f9ebfbf31f6c94a200c" - integrity sha512-j9Zp8M8+VLq1nI/5xZGfzeaEPtGQ/vk3G+Y8vpmFWLvKLNZ2TDjD6cu2dUu7lDbu1HXNgatsAX4jgCZTkR9qhQ== +karma-firefox-launcher@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz#ebcbb1d1ddfada6be900eb8fae25bcf2dcdc8171" + integrity sha512-Fi7xPhwrRgr+94BnHX0F5dCl1miIW4RHnzjIGxF8GaIEp7rNqX7LSi7ok63VXs3PS/5MQaQMhGxw+bvD+pibBQ== dependencies: is-wsl "^2.1.0" @@ -3969,12 +4294,12 @@ karma-ie-launcher@^1.0.0: dependencies: lodash "^4.6.1" -karma-jasmine@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-2.0.1.tgz#26e3e31f2faf272dd80ebb0e1898914cc3a19763" - integrity sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA== +karma-jasmine@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-3.1.1.tgz#f592b253e7619a8d84559d7daf473a647498ade8" + integrity sha512-pxBmv5K7IkBRLsFSTOpgiK/HzicQT3mfFF+oHAC7nxMfYKhaYFgxOa5qjnHW4sL5rUnmdkSajoudOnnOdPyW4Q== dependencies: - jasmine-core "^3.3" + jasmine-core "^3.5.0" karma-phantomjs-launcher@^1.0.4: version "1.0.4" @@ -4001,10 +4326,10 @@ karma-webpack@^4.0.2: source-map "^0.7.3" webpack-dev-middleware "^3.7.0" -karma@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.2.0.tgz#27e88b310cde090d016980ff5444e3a239196fca" - integrity sha512-fmCuxN1rwJxTdZfOXK5LjlmS4Ana/OvzNMpkyLL/TLE8hmgSkpVpMYQ7RTVa8TNKRVQDZNl5W1oF5cfKfgIMlA== +karma@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" + integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== dependencies: bluebird "^3.3.0" body-parser "^1.16.1" @@ -4012,7 +4337,6 @@ karma@^4.2.0: chokidar "^3.0.0" colors "^1.1.0" connect "^3.6.0" - core-js "^3.1.3" di "^0.0.1" dom-serialize "^2.2.0" flatted "^2.0.0" @@ -4020,7 +4344,7 @@ karma@^4.2.0: graceful-fs "^4.1.2" http-proxy "^1.13.0" isbinaryfile "^3.0.0" - lodash "^4.17.11" + lodash "^4.17.14" log4js "^4.0.0" mime "^2.3.1" minimatch "^3.0.2" @@ -4064,9 +4388,9 @@ kind-of@^5.0.0: integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" @@ -4082,6 +4406,18 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -4095,7 +4431,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -4104,6 +4440,23 @@ loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2. emojis-list "^2.0.0" json5 "^1.0.1" +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -4112,7 +4465,14 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.6.1: +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.6.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -4128,10 +4488,10 @@ log4js@^4.0.0: rfdc "^1.1.4" streamroller "^1.0.6" -loglevel@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" - integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== +loglevel@^1.6.6: + version "1.6.7" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" + integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" @@ -4155,7 +4515,7 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -make-dir@^2.0.0: +make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -4163,10 +4523,12 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== +make-dir@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" + integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + dependencies: + semver "^6.0.0" map-age-cleaner@^0.1.1: version "0.1.3" @@ -4218,11 +4580,24 @@ memory-fs@^0.4.0, memory-fs@^0.4.1: errno "^0.1.3" readable-stream "^2.0.1" +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -4255,34 +4630,29 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== +mime-db@1.43.0, "mime-db@>= 1.43.0 < 2": + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== +mime-types@^2.1.12, mime-types@^2.1.25, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== dependencies: - mime-db "1.40.0" + mime-db "1.43.0" mime@1.6.0, mime@^1.2.11: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.0.3, mime@^2.3.1, mime@^2.4.2: +mime@^2.0.3, mime@^2.3.1, mime@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.0.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -4304,35 +4674,58 @@ minimatch@^3.0.2, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -minipass@^2.2.1, minipass@^2.3.5: - version "2.4.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.4.0.tgz#38f0af94f42fb6f34d3d7d82a90e2c99cd3ff485" - integrity sha512-6PmOuSP4NnZXzs2z6rbwzLJu/c5gdzYg1mRI/WIYdx45iiX7T+a4esOzavD6V/KmBzAaopFSTZPZcUx73bqKWA== +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" + integrity sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA== + dependencies: + minipass "^3.0.0" + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" + integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w== + dependencies: + yallist "^4.0.0" + minizlib@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: - minipass "^2.2.1" + minipass "^2.9.0" mississippi@^3.0.0: version "3.0.0" @@ -4358,12 +4751,12 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== dependencies: - minimist "0.0.8" + minimist "^1.2.5" move-concurrently@^1.0.1: version "1.0.1" @@ -4405,10 +4798,10 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.12.1: version "2.14.0" @@ -4438,9 +4831,9 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.1.tgz#14af48732463d7475696f937626b1b993247a56a" + integrity sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -4461,10 +4854,10 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-forge@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" - integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== node-libs-browser@^2.2.1: version "2.2.1" @@ -4495,10 +4888,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== +node-pre-gyp@*: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -4509,19 +4902,17 @@ node-pre-gyp@^0.12.0: rc "^1.2.7" rimraf "^2.6.1" semver "^5.3.0" - tar "^4" + tar "^4.4.2" -node-releases@^1.1.25: - version "1.1.28" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.28.tgz#503c3c70d0e4732b84e7aaa2925fbdde10482d4a" - integrity sha512-AQw4emh6iSXnCpDiFe0phYcThiccmkNWMZnFZ+lDJjAP8J0m2fVd59duvUUyuTirQOhIAajTFkzG6FHCLBO59g== - dependencies: - semver "^5.3.0" +node-releases@^1.1.53: + version "1.1.53" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" + integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" osenv "^0.1.4" @@ -4533,23 +4924,31 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== npm-packlist@^1.1.6: - version "1.4.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" - integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" npm-run-path@^2.0.0: version "2.0.2" @@ -4597,7 +4996,17 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-keys@^1.0.0, object-keys@^1.0.11, object-keys@^1.0.12: +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-is@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + +object-keys@^1.0.0, object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -4619,25 +5028,25 @@ object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" - integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== +object.entries@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" -object.fromentries@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" - integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.11.0" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" - has "^1.0.1" + has "^1.0.3" object.pick@^1.3.0: version "1.3.0" @@ -4646,13 +5055,13 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== +object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" @@ -4680,12 +5089,12 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== dependencies: - mimic-fn "^1.0.0" + mimic-fn "^2.1.0" opn@^5.5.0: version "5.5.0" @@ -4702,17 +5111,17 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" + fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - wordwrap "~1.0.0" + word-wrap "~1.2.3" original@^1.0.0: version "1.0.2" @@ -4758,15 +5167,6 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.1.tgz#f53118282f5f553c2799541792b723a4c71430c0" - integrity sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ== - dependencies: - graceful-fs "^4.1.11" - is-plain-obj "^1.1.0" - mkdirp "^0.5.1" - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -4782,13 +5182,27 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== dependencies: p-try "^2.0.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -4796,11 +5210,25 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + p-retry@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -4808,22 +5236,27 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: - cyclist "~0.2.2" + cyclist "^1.0.1" inherits "^2.0.3" readable-stream "^2.1.5" @@ -4835,9 +5268,9 @@ parent-module@^1.0.0: callsites "^3.0.0" parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" - integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -4890,6 +5323,11 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -4951,10 +5389,10 @@ phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: request-progress "^2.0.1" which "^1.2.10" -picomatch@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" - integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== +picomatch@^2.0.4, picomatch@^2.0.7: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== pify@^2.0.0: version "2.3.0" @@ -4985,14 +5423,28 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -portfinder@^1.0.21: - version "1.0.23" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.23.tgz#894db4bcc5daf02b6614517ce89cd21a38226b82" - integrity sha512-B729mL/uLklxtxuiJKfQ84WPxNw5a7Yhx3geQZdcA4GjNjZSTSSMMWyoennMVnTWSmAR0lMdzWYN0JLnHrg1KQ== +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" + find-up "^4.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +portfinder@^1.0.25: + version "1.0.25" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" + integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.1" posix-character-classes@^0.1.0: version "0.1.1" @@ -5112,7 +5564,7 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -private@^0.1.6: +private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== @@ -5152,17 +5604,17 @@ prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: react-is "^16.8.1" proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: forwarded "~0.1.2" - ipaddr.js "1.9.0" + ipaddr.js "1.9.1" proxy-from-env@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== prr@~1.0.1: version "1.0.1" @@ -5174,10 +5626,10 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24: - version "1.3.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" - integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== public-encrypt@^4.0.0: version "4.0.3" @@ -5221,25 +5673,27 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4, punycode@^1.4.1: +punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.19.0.tgz#e3b7b448c2c97933517078d7a2c53687361bebea" - integrity sha512-2S6E6ygpoqcECaagDbBopoSOPDv0pAZvTbnBgUY+6hq0/XDFDOLEMNlHF/SKJlzcaZ9ckiKjKDuueWI3FN/WXw== +puppeteer@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-2.1.1.tgz#ccde47c2a688f131883b50f2d697bd25189da27e" + integrity sha512-LWzaDVQkk1EPiuYeTOj+CZRIjda4k2s5w4MK4xoH2+kgWV/SDlkYHmxatDdtYrciHUKSXTsGgPgPP8ILVdBsxg== dependencies: + "@types/mime-types" "^2.1.0" debug "^4.1.0" extract-zip "^1.6.6" - https-proxy-agent "^2.2.1" + https-proxy-agent "^4.0.0" mime "^2.0.3" + mime-types "^2.1.25" progress "^2.0.1" proxy-from-env "^1.0.0" rimraf "^2.6.1" @@ -5315,49 +5769,49 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^16.3: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" - integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== +react-dom@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.15.0" + scheduler "^0.19.1" react-frame-component@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-2.0.2.tgz#e602a980e1d78f91f471531225b61cfdbf68e614" integrity sha1-5gKpgOHXj5H0cVMSJbYc/b9o5hQ= -react-is@^16.8.1, react-is@^16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== +react-is@^16.8.1, react-is@^16.8.6: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-test-renderer@^16.1.1: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9" - integrity sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ== +react-test-renderer@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" + integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" - react-is "^16.9.0" - scheduler "^0.15.0" + react-is "^16.8.6" + scheduler "^0.19.1" -react@^16.3: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" - integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== +react@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -5368,9 +5822,9 @@ react@^16.3: util-deprecate "~1.0.1" readable-stream@^3.0.6: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -5385,17 +5839,17 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.2.tgz#fa85d2d14d4289920e4671dead96431add2ee78a" - integrity sha512-8rhl0xs2cxfVsqzreYCvs8EwBfn/DhVdqtoLmw19uI3SC5avYX9teCurlErfpPXGmYtMHReGaP2RsLnFvz/lnw== +readdirp@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" + integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== dependencies: - picomatch "^2.0.4" + picomatch "^2.0.7" -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" @@ -5404,12 +5858,18 @@ regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: - private "^0.1.6" + "@babel/runtime" "^7.8.4" + private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -5419,37 +5879,40 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp-tree@^0.1.6: - version "0.1.12" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.12.tgz#28eaaa6e66eeb3527c15108a3ff740d9e574e420" - integrity sha512-TsXZ8+cv2uxMEkLfgwO0E068gsNMLfuYwMMhiUxf0Kw2Vcgzq93vgl6wIlIYuPmfMqMjfQ9zAporiozqCnwLuQ== +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^4.5.4: - version "4.5.5" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" - integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ== +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" + unicode-match-property-value-ecmascript "^1.2.0" -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== +regjsgen@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -5476,9 +5939,9 @@ request-progress@^2.0.1: throttleit "^1.0.0" request@^2.81.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -5487,7 +5950,7 @@ request@^2.81.0: extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - har-validator "~5.1.0" + har-validator "~5.1.3" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -5497,7 +5960,7 @@ request@^2.81.0: performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" - tough-cookie "~2.4.3" + tough-cookie "~2.5.0" tunnel-agent "^0.6.0" uuid "^3.3.2" @@ -5551,19 +6014,19 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.1, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.3.3: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== +resolve@^1.12.0, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.3.3: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: path-parse "^1.0.6" -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: - onetime "^2.0.0" + onetime "^5.1.0" signal-exit "^3.0.2" ret@~0.1.10: @@ -5588,7 +6051,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -5603,10 +6066,10 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= +run-async@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== dependencies: is-promise "^2.1.0" @@ -5617,10 +6080,10 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.4.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" - integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== +rxjs@^6.5.3: + version "6.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== dependencies: tslib "^1.9.0" @@ -5651,10 +6114,10 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" - integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg== +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -5668,24 +6131,37 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.6.4, schema-utils@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" - integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== +selfsigned@^1.10.7: + version "1.10.7" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== dependencies: - node-forge "0.7.5" + node-forge "0.9.0" + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -5709,10 +6185,10 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.8.0.tgz#9515fc687232e2321aea1ca7a529476eb34bb480" - integrity sha512-3tHgtF4OzDmeKYj6V9nSyceRS0UJ3C7VqyD2Yj28vC/z2j6jG5FmFGahOKMD9CrglxTm3tETr87jEypaYV8DUg== +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== serve-index@^1.9.1: version "1.9.1" @@ -5794,10 +6270,18 @@ shebang-regex@^1.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +side-channel@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" + integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== + dependencies: + es-abstract "^1.17.0-next.1" + object-inspect "^1.7.0" + signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== slash@^2.0.0: version "2.0.0" @@ -5844,9 +6328,9 @@ snapdragon@^0.8.1: use "^3.1.0" socket.io-adapter@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" - integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== socket.io-client@2.1.1: version "2.1.1" @@ -5889,10 +6373,10 @@ socket.io@2.1.1: socket.io-client "2.1.1" socket.io-parser "~3.2.0" -sockjs-client@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" - integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== dependencies: debug "^3.2.5" eventsource "^1.0.7" @@ -5915,20 +6399,20 @@ source-list-map@^2.0.0: integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" source-map-support@~0.5.12: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -6018,6 +6502,14 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" +ssri@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" + integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== + dependencies: + figgy-pudding "^3.5.1" + minipass "^3.1.1" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -6069,9 +6561,9 @@ stream-http@^2.7.2: xtend "^4.0.0" stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== streamroller@^1.0.6: version "1.0.6" @@ -6093,7 +6585,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -6110,6 +6602,61 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" + integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + has-symbols "^1.0.1" + internal-slot "^1.0.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.2" + +string.prototype.trimend@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz#ee497fd29768646d84be2c9b819e292439614373" + integrity sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz#afe596a7ce9de905496919406c9734845f01a2f2" + integrity sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -6161,6 +6708,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -6195,6 +6749,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + table@^5.2.3: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -6210,38 +6771,53 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4: - version "4.4.10" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" - integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== +tar@^4.4.2: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.3.5" + minipass "^2.8.6" minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" yallist "^3.0.3" -terser-webpack-plugin@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^1.7.0" + serialize-javascript "^2.1.2" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser@^4.1.2: - version "4.2.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.2.1.tgz#1052cfe17576c66e7bc70fcc7119f22b155bdac1" - integrity sha512-cGbc5utAcX4a9+2GGVX4DsenG6v0x3glnDi5hx8816X1McEAwPlPgRtXPJzSBsbpILxZ8MQMT0KvArLuE0HP5A== +terser-webpack-plugin@^2.3.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" + integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== + dependencies: + cacache "^13.0.1" + find-cache-dir "^3.2.0" + jest-worker "^25.1.0" + p-limit "^2.2.2" + schema-utils "^2.6.4" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.4.3" + webpack-sources "^1.4.3" + +terser@^4.1.2, terser@^4.4.3: + version "4.6.10" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.10.tgz#90f5bd069ff456ddbc9503b18e52f9c493d3b7c2" + integrity sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -6271,9 +6847,9 @@ through@^2.3.6: integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= thunky@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" - integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== timers-browserify@^2.0.4: version "2.0.11" @@ -6341,28 +6917,23 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: - psl "^1.1.24" - punycode "^1.4.1" + psl "^1.1.28" + punycode "^2.1.1" traverse@^0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== tty-browserify@0.0.0: version "0.0.0" @@ -6388,6 +6959,16 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -6406,17 +6987,17 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" - integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== +typescript@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" + integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== -uglify-js@^3.2.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" - integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== +uglify-js@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.1.tgz#43bb15ce6f545eaa0a64c49fd29375ea09fa0f93" + integrity sha512-W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw== dependencies: - commander "~2.20.0" + commander "~2.20.3" source-map "~0.6.1" ultron@~1.1.0: @@ -6437,15 +7018,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== union-value@^1.0.0: version "1.0.1" @@ -6499,9 +7080,9 @@ unset-value@^1.0.0: isobject "^3.0.0" upath@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" - integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== uri-js@^4.2.2: version "4.2.2" @@ -6569,9 +7150,9 @@ utils-merge@1.0.1: integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.0.1, uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-compile-cache@2.0.3: version "2.0.3" @@ -6598,9 +7179,9 @@ verror@1.10.0: extsprintf "^1.2.0" vm-browserify@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== void-elements@^2.0.0: version "2.0.1" @@ -6608,11 +7189,11 @@ void-elements@^2.0.0: integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + version "1.6.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" + integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== dependencies: - chokidar "^2.0.2" + chokidar "^2.1.8" graceful-fs "^4.1.2" neo-async "^2.5.0" @@ -6623,10 +7204,10 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -webpack-cli@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.7.tgz#77c8580dd8e92f69d635e0238eaf9d9c15759a91" - integrity sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ== +webpack-cli@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" + integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== dependencies: chalk "2.4.2" cross-spawn "6.0.5" @@ -6640,51 +7221,52 @@ webpack-cli@^3.3.7: v8-compile-cache "2.0.3" yargs "13.2.4" -webpack-dev-middleware@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" - integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== +webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== dependencies: memory-fs "^0.4.1" - mime "^2.4.2" + mime "^2.4.4" + mkdirp "^0.5.1" range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.8.0.tgz#06cc4fc2f440428508d0e9770da1fef10e5ef28d" - integrity sha512-Hs8K9yI6pyMvGkaPTeTonhD6JXVsigXDApYk9JLW4M7viVBspQvb1WdAcWxqtmttxNW4zf2UFLsLNe0y87pIGQ== +webpack-dev-server@^3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" - chokidar "^2.1.6" + chokidar "^2.1.8" compression "^1.7.4" connect-history-api-fallback "^1.6.0" debug "^4.1.1" del "^4.1.1" express "^4.17.1" html-entities "^1.2.1" - http-proxy-middleware "^0.19.1" + http-proxy-middleware "0.19.1" import-local "^2.0.0" internal-ip "^4.3.0" ip "^1.1.5" - is-absolute-url "^3.0.0" + is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.3" + loglevel "^1.6.6" opn "^5.5.0" p-retry "^3.0.1" - portfinder "^1.0.21" + portfinder "^1.0.25" schema-utils "^1.0.0" - selfsigned "^1.10.4" + selfsigned "^1.10.7" semver "^6.3.0" serve-index "^1.9.1" sockjs "0.3.19" - sockjs-client "1.3.0" + sockjs-client "1.4.0" spdy "^4.0.1" strip-ansi "^3.0.1" supports-color "^6.1.0" url "^0.11.0" - webpack-dev-middleware "^3.7.0" + webpack-dev-middleware "^3.7.2" webpack-log "^2.0.0" ws "^6.2.1" yargs "12.0.5" @@ -6697,7 +7279,7 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-sources@^1.4.0, webpack-sources@^1.4.1: +webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -6705,15 +7287,15 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.39.2: - version "4.39.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.2.tgz#c9aa5c1776d7c309d1b3911764f0288c8c2816aa" - integrity sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA== +webpack@^4.42.1: + version "4.42.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" + integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" acorn "^6.2.1" ajv "^6.10.2" ajv-keywords "^3.4.1" @@ -6725,12 +7307,12 @@ webpack@^4.39.2: loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" - mkdirp "^0.5.1" + mkdirp "^0.5.3" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" + terser-webpack-plugin "^1.4.3" watchpack "^1.6.0" webpack-sources "^1.4.1" @@ -6774,16 +7356,16 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -6841,6 +7423,13 @@ xmlhttprequest-ssl@~1.5.4: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= +xregexp@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" + integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== + dependencies: + "@babel/runtime-corejs3" "^7.8.3" + xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -6857,9 +7446,14 @@ yallist@^2.1.2: integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@^11.1.1: version "11.1.1" @@ -6870,9 +7464,9 @@ yargs-parser@^11.1.1: decamelize "^1.2.0" yargs-parser@^13.1.0: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -6912,12 +7506,13 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: - fd-slicer "~1.0.1" + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" yeast@0.1.2: version "0.1.2" From cdf8bee94437cfcdb3ff88ecb2707c853fd51352 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 3 Apr 2020 09:21:32 -0400 Subject: [PATCH 345/412] chore(pkg): force-upgrade minimist for sec fix --- package.json | 3 + yarn.lock | 227 +++------------------------------------------------ 2 files changed, 15 insertions(+), 215 deletions(-) diff --git a/package.json b/package.json index cd2526b4..11617515 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,9 @@ "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3" }, + "resolutions": { + "minimist": "^1.2.5" + }, "precommit": [ "lint", "test" diff --git a/yarn.lock b/yarn.lock index 19549073..4f65df78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1105,11 +1105,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -1259,19 +1254,11 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3, aproba@^1.1.1: +aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2138,11 +2125,6 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -2367,11 +2349,6 @@ deep-equal@^1.0.0, deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -2432,11 +2409,6 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -2460,11 +2432,6 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -3295,13 +3262,6 @@ fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -3352,20 +3312,6 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - gensync@^1.0.0-beta.1: version "1.0.0-beta.1" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" @@ -3543,11 +3489,6 @@ has-symbols@^1.0.0, has-symbols@^1.0.1: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -3724,7 +3665,7 @@ https-proxy-agent@^4.0.0: agent-base "5" debug "4" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3741,13 +3682,6 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -3812,7 +3746,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -4674,16 +4608,11 @@ minimatch@^3.0.2, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5, minimist@~0.0.1: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -4705,14 +4634,6 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - minipass@^3.0.0, minipass@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" @@ -4720,13 +4641,6 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -4751,7 +4665,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== @@ -4830,15 +4744,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -needle@^2.2.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.1.tgz#14af48732463d7475696f937626b1b993247a56a" - integrity sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -4888,35 +4793,11 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.53: version "1.1.53" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== -nopt@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -4929,27 +4810,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -4957,16 +4817,6 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -4977,7 +4827,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -5135,11 +4985,6 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - os-locale@^3.0.0, os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -5154,19 +4999,11 @@ os-shim@^0.1.2: resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -5759,16 +5596,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-dom@^16.13.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" @@ -5808,7 +5635,7 @@ react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -6109,11 +5936,6 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - scheduler@^0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" @@ -6156,7 +5978,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: +semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -6213,7 +6035,7 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -6585,7 +6407,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: +string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -6725,11 +6547,6 @@ strip-json-comments@^3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - supports-color@6.1.0, supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" @@ -6771,19 +6588,6 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4.4.2: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -7349,13 +7153,6 @@ which@^1.2.1, which@^1.2.10, which@^1.2.14, which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -7445,7 +7242,7 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== From 6e303cb6abb45283b90da8950b93e64c27382d27 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 10 Apr 2020 16:34:09 -0400 Subject: [PATCH 346/412] fix(unmount): fix setState after unmount (#424) Ref: #390 --- karma.conf.js | 1 + lib/Draggable.js | 4 ++-- lib/DraggableCore.js | 18 +++++++++++++----- specs/draggable.spec.jsx | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 7 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index bd00b5ef..7224541e 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -28,6 +28,7 @@ module.exports = function(config) { mode: 'production', // Remove source maps: *speeeeeed* devtool: 'none', + cache: true, module: { // Suppress power-assert warning exprContextCritical: false, diff --git a/lib/Draggable.js b/lib/Draggable.js index 7e53ecfe..002afc12 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -295,8 +295,8 @@ class Draggable extends React.Component { if (!this.state.dragging) return false; // Short-circuit if user's callback killed it. - const shouldStop = this.props.onStop(e, createDraggableData(this, coreData)); - if (shouldStop === false) return false; + const shouldContinue = this.props.onStop(e, createDraggableData(this, coreData)); + if (shouldContinue === false) return false; log('Draggable: onDragStop: %j', coreData); diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 2429a612..2875f6f4 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -222,7 +222,14 @@ export default class DraggableCore extends React.Component + + + {firstVisible && ( + setFirstVisible(false)} ref={dragRef}> +

1. Drag me!

+
+ )} +
+ ); + } + let dragRef; + const appContainer = TestUtils.renderIntoDocument( + {dragRef = _ref;}}/> + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(dragRef.current, 0, 0, 100, 100); + + // ok, was a setstate warning thrown? + // Assert unmounted + assert(dragRef.current === null); + }); + }); describe('DraggableCore callbacks', function () { From 49e71da49fceb8016ecc83c7c4a29e6e0c15bb1d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 10 Apr 2020 17:05:39 -0400 Subject: [PATCH 347/412] test(caret): add selection test for focus --- package.json | 5 +- specs/draggable.spec.jsx | 140 +++++++++++++++++++++++++-------------- 2 files changed, 93 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index bc89f1b0..1ec89049 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,9 @@ "scripts": { "test": "make test", "test-phantom": "make test-phantom", - "test-debug": "karma start --browsers=Chrome", - "test-ie": "karma start --browsers=IE", + "test-debug": "karma start --browsers=Chrome --single-run=false --auto-watch=true", + "test-firefox": "karma start --browsers=Firefox --single-run=false --auto-watch=true", + "test-ie": "karma start --browsers=IE --single-run=false --auto-watch=true", "dev": "make dev", "build": "make clean build", "lint": "make lint", diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 376f2afe..99ee4c26 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -355,56 +355,96 @@ describe('react-draggable', function () { assert(transform.indexOf('translate(100,100)') >= 0); }); - it('should add and remove transparent selection class', function () { - drag = TestUtils.renderIntoDocument( - -
- - ); - - const node = ReactDOM.findDOMNode(drag); - - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(document.body.classList.contains('react-draggable-transparent-selection')); - TestUtils.Simulate.mouseUp(node); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - }); - - it('should not add and remove transparent selection class when disabled', function () { - - drag = TestUtils.renderIntoDocument( - -
- - ); - - const node = ReactDOM.findDOMNode(drag); - - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - TestUtils.Simulate.mouseUp(node); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - }); - - it('should not add and remove transparent selection class when onStart returns false', function () { - function onStart() { return false; } - - drag = TestUtils.renderIntoDocument( - -
- - ); - - const node = ReactDOM.findDOMNode(drag); - - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - TestUtils.Simulate.mouseUp(node); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - }); + it('should add and remove transparent selection class', function () { + drag = TestUtils.renderIntoDocument( + +
+ + ); + + const node = ReactDOM.findDOMNode(drag); + + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseUp(node); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + }); + + it('should not add and remove transparent selection class when disabled', function () { + + drag = TestUtils.renderIntoDocument( + +
+ + ); + + const node = ReactDOM.findDOMNode(drag); + + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseUp(node); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + }); + + it('should not add and remove transparent selection class when onStart returns false', function () { + function onStart() { return false; } + + drag = TestUtils.renderIntoDocument( + +
+ + ); + + const node = ReactDOM.findDOMNode(drag); + + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseUp(node); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + }); + + it('should not defocus inputs when unmounting', function () { + // Have only successfully gotten this to run on Chrome unfortunately, otherwise the initial + // select does not work. + // As of April 2020 we have verified this works in other browsers manually + if (!/Chrome/.test(window.navigator.userAgent)) { + return pending(); + } + + class TestCase extends React.Component { + constructor() { + super(); + this.state = {text: false}; + } + render() { + return ( +
+ this.setState({text: e.target.value})} size={5} /> + {!this.state.text && ( + +
+ + )} +
+ ); + } + } + + drag = TestUtils.renderIntoDocument(); + const dragEl = ReactDOM.findDOMNode(drag); + // Need to append to a real document to test focus/selection, can't just be a fragment + document.body.appendChild(dragEl); + const input = dragEl.querySelector('input'); + input.focus(); + + assert(window.getSelection().type === 'Caret', 'Element should be focused before draggable unmounts'); + TestUtils.Simulate.keyDown(input, {key: 'a', keyCode: 65, which: 65}); + assert(window.getSelection().type === 'Caret', 'Element should be focused after draggable unmounts'); + document.body.removeChild(dragEl); + }); it('should be draggable when in an iframe', function (done) { let dragged = false; From 0090d619565342dae36805825516a4735a127491 Mon Sep 17 00:00:00 2001 From: silverwind Date: Fri, 10 Apr 2020 23:12:20 +0200 Subject: [PATCH 348/412] Expand .cancel documentation (#446) Fixes: https://github.com/mzabriskie/react-draggable/issues/436 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7210fddd..005a5445 100644 --- a/README.md +++ b/README.md @@ -178,7 +178,8 @@ axis: string, // can be moved. bounds: {left: number, top: number, right: number, bottom: number} | string, -// Specifies a selector to be used to prevent drag initialization. +// Specifies a selector to be used to prevent drag initialization. The string is passed to +// Element.matches, so it's possible to use multiple selectors like `.first, .second`. // Example: '.body' cancel: string, From 72161f40b111aee2cee5a0803da1c21a44b2b7f0 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 11 Apr 2020 09:10:57 -0400 Subject: [PATCH 349/412] fix(compat): prefer {add,remove}EventListener over legacy fns --- lib/utils/domFns.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 87809bd8..a1f391db 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -39,24 +39,26 @@ export function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode return false; } -export function addEvent(el: ?Node, event: string, handler: Function): void { - if (!el) { return; } - if (el.attachEvent) { +export function addEvent(el: ?Node, event: string, handler: Function, inputOptions?: Object): void { + if (!el) return; + const options = {capture: true, ...inputOptions}; + if (el.addEventListener) { + el.addEventListener(event, handler, options); + } else if (el.attachEvent) { el.attachEvent('on' + event, handler); - } else if (el.addEventListener) { - el.addEventListener(event, handler, true); } else { // $FlowIgnore: Doesn't think elements are indexable el['on' + event] = handler; } } -export function removeEvent(el: ?Node, event: string, handler: Function): void { - if (!el) { return; } - if (el.detachEvent) { +export function removeEvent(el: ?Node, event: string, handler: Function, inputOptions?: Object): void { + if (!el) return; + const options = {capture: true, ...inputOptions}; + if (el.removeEventListener) { + el.removeEventListener(event, handler, options); + } else if (el.detachEvent) { el.detachEvent('on' + event, handler); - } else if (el.removeEventListener) { - el.removeEventListener(event, handler, true); } else { // $FlowIgnore: Doesn't think elements are indexable el['on' + event] = null; From 458706c5d86af67bf3b1180a5521756714439055 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 11 Apr 2020 10:02:08 -0400 Subject: [PATCH 350/412] feat(example): minor cleanups, add scrollable content example --- Makefile | 2 +- example/example.js | 27 +++++++++++++++++++-------- webpack.config.js | 3 ++- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index bd0866c7..403f6189 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ test-phantom: $(BIN) @NODE_ENV=test $(BIN)/karma start karma-phantomjs.conf.js dev: $(BIN) clean - DRAGGABLE_DEBUG=true $(BIN)/webpack-dev-server + $(BIN)/webpack-dev-server node_modules/.bin: install diff --git a/example/example.js b/example/example.js index 96f8500f..588792c4 100644 --- a/example/example.js +++ b/example/example.js @@ -89,6 +89,17 @@ class App extends React.Component {
You must click my handle to drag me
+ +
+
Drag here
+
+
+ I have long scrollable content with a handle + {'\n' + Array(40).fill('x').join('\n')} +
+
+
+
Can't drag here @@ -144,24 +155,24 @@ class App extends React.Component {
My position can be changed programmatically.
I have a drag handler to sync state. -

+

+
My position can be changed programmatically.
I have a dragStop handler to sync state. -

+

+
diff --git a/webpack.config.js b/webpack.config.js index 34c32bfa..b26a5b67 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -24,6 +24,7 @@ module.exports = (env, argv) => ({ hot: true, open: true, openPage: 'example/index.html', + disableHostCheck: true, writeToDisk: true, }, devtool: 'source-map', @@ -57,7 +58,7 @@ module.exports = (env, argv) => ({ plugins: [ new webpack.EnvironmentPlugin({ // Default values - DRAGGABLE_DEBUG: argv.mode === 'development', + DRAGGABLE_DEBUG: (process.env.DRAGGABLE_DEBUG || ''), NODE_ENV: ['development', 'production'].includes(argv.mode) ? argv.mode : (process.env.NODE_ENV || 'production'), From 4b46cbab9b74e803d125e06493cb15fdb549df75 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 11 Apr 2020 10:23:42 -0400 Subject: [PATCH 351/412] feat(touch): more robust solution for touch body scrolling (#470) We now simply cancel the 'touchstart' event. As of Chrome >= 56, this has to be done on event handlers that explicitly specify `{passive: false}`. Fixes #227, #435, #351, #406, #412, #279, redux #165 --- lib/DraggableCore.js | 22 ++++++++++++++----- lib/utils/domFns.js | 9 -------- specs/draggable.spec.jsx | 47 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 61 insertions(+), 17 deletions(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 2875f6f4..3eee1804 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -3,7 +3,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; import {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, - removeUserSelectStyles, styleHacks} from './utils/domFns'; + removeUserSelectStyles} from './utils/domFns'; import {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import log from './utils/log'; @@ -226,6 +226,12 @@ export default class DraggableCore extends React.Component = (e) => { - // Prevent scrolling on mobile devices, like ipad/iphone. - if (e.type === 'touchmove') e.preventDefault(); - // Get the current drag point from the event. This is used as the offset. const position = getControlPosition(e, this.state.touchIdentifier, this); if (position == null) return; @@ -418,13 +426,15 @@ export default class DraggableCore extends React.Component
); const node = renderToNode(drag); + // Touch-action hack has been removed if ('touchAction' in document.body.style) { - assert(node.getAttribute('style').indexOf('touch-action: none') >= 0); + assert(node.getAttribute('style').indexOf('touch-action: none') === -1); } assert(node.getAttribute('style').indexOf('color: black') >= 0); assert(new RegExp(transformStyle + ': translate\\(0px(?:, 0px)?\\)').test(node.getAttribute('style'))); @@ -600,6 +601,48 @@ describe('react-draggable', function () { resetDragging(drag); }); + it('should initialize dragging ontouchstart', function () { + drag = TestUtils.renderIntoDocument(
); + + // Need to dispatch this ourselves as there is no onTouchStart handler (due to passive) + // so TestUtils.Simulate will not work + const e = new Event('touchstart'); + ReactDOM.findDOMNode(drag).dispatchEvent(e); + assert(drag.state.dragging === true); + }); + + it('should call preventDefault on touchStart event', function () { + drag = TestUtils.renderIntoDocument(
); + + const e = new Event('touchstart'); + // Oddly `e.defaultPrevented` is not changing here. Maybe because we're not mounted to a real doc? + let pdCalled = false; + e.preventDefault = function() { pdCalled = true; }; + ReactDOM.findDOMNode(drag).dispatchEvent(e); + assert(pdCalled); + assert(drag.state.dragging === true); + }); + + it('should not call preventDefault on touchStart event if not on handle', function () { + drag = TestUtils.renderIntoDocument( + +
+
+
Handle
+
+
Lorem ipsum...
+
+
+ ); + + const e = new Event('touchstart'); + let pdCalled = false; + e.preventDefault = function() { pdCalled = true; }; + ReactDOM.findDOMNode(drag).querySelector('.content').dispatchEvent(e); + assert(!pdCalled); + assert(drag.state.dragging !== true); + }); + it('should modulate position on scroll', function (done) { let dragCalled = false; From 534983f1a9e76a4b63af7f6d68bf584525accd4a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 11 Apr 2020 10:36:07 -0400 Subject: [PATCH 352/412] fix(docs): link to example source Fixes #458 --- README.md | 8 ++++---- example/example.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 005a5445..3227116f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # React-Draggable -[![TravisCI Build Status](https://travis-ci.org/mzabriskie/react-draggable.svg?branch=master)](https://travis-ci.org/mzabriskie/react-draggable) -[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true)](https://ci.appveyor.com/project/mzabriskie/react-draggable) +[![TravisCI Build Status](https://travis-ci.org/strml/react-draggable.svg?branch=master)](https://travis-ci.org/strml/react-draggable) +[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true)](https://ci.appveyor.com/project/strml/react-draggable) [![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)](http://npmjs.com/package/react-draggable) [![gzip size](http://img.badgesize.io/https://npmcdn.com/react-draggable/dist/react-draggable.min.js?compression=gzip)]() [![version](https://img.shields.io/npm/v/react-draggable.svg)]() @@ -14,7 +14,7 @@ A simple component for making elements draggable. ``` -- [Demo](http://mzabriskie.github.io/react-draggable/example/) +- [Demo](http://strml.github.io/react-draggable/example/) - [Changelog](CHANGELOG.md) @@ -83,7 +83,7 @@ an intermediate wrapper (`...`) in this case ### Draggable Usage -View the [Demo](http://mzabriskie.github.io/react-draggable/example/) and its +View the [Demo](http://strml.github.io/react-draggable/example/) and its [source](/example/example.js) for more. ```js diff --git a/example/example.js b/example/example.js index 588792c4..a138b4d0 100644 --- a/example/example.js +++ b/example/example.js @@ -63,7 +63,7 @@ class App extends React.Component {

React Draggable

Active DragHandlers: {this.state.activeDrags}

- Demo Source + Demo Source

I can be dragged anywhere
From deb5d9c796d135f66e5f0d0915ed4992f27d34fa Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sat, 11 Apr 2020 10:39:31 -0400 Subject: [PATCH 353/412] release v4.3.0 --- CHANGELOG.md | 12 ++++++++++++ package.json | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b775ac6d..4b48eab1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 4.3.0 (Apr 10, 2020) + +- Fix setState warning after dismount if drag still active. Harmless, but prints a warning. [#424](https://github.com/mzabriskie/react-draggable/pull/424) +- Fix a long-standing issue where text inputs would unfocus upon dismounting a ``. + - Thanks @schnerd, [#450](https://github.com/mzabriskie/react-draggable/pull/450) +- Fix an issue where the insides of a `` were not scrollable on touch devices due to the outer container having `touch-action: none`. + - This was a long-standing hack for mobile devices. Without it, the page will scroll while you drag the element. + - The new solution will simply cancel the touch event `e.preventDefault()`. However, due to changes in Chrome >= 56, this is only possible on + non-passive event handlers. To fix this, we now add/remove the touchEvent on lifecycle events rather than using React's event system. + - [#465](https://github.com/mzabriskie/react-draggable/pull/465) +- Upgrade devDeps and fix security warnings. None of them actually applied to this module. + ### 4.2.0 (Dec 2, 2019) - Fix: Apply `scale` parameter also while dragging an element. [#438](https://github.com/mzabriskie/react-draggable/pull/438) diff --git a/package.json b/package.json index d029468a..93856699 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.2.0", + "version": "4.3.0", "description": "React draggable component", "main": "build/cjs/cjs.js", "browser": "build/web/react-draggable.min.js", @@ -95,4 +95,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} +} \ No newline at end of file From 41a2c39b5741952a04caff1ac3d758197d221898 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 12 Apr 2020 15:54:25 -0400 Subject: [PATCH 354/412] fix(build): babel cache caused DRAGGABLE_DEBUG to ship That was frustrating to find - babel's cacheIdentifier does not include the contents of webpack config, so changing it may cause you to ship env variables you don't mean to ship --- Makefile | 4 ++-- webpack.config.js | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 403f6189..ce6aff4b 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ lint: @$(BIN)/eslint lib/* lib/utils/* specs/* @$(BIN)/tsc -p typings -build: build-cjs build-esm build-web +build: clean build-cjs build-esm build-web build-cjs: $(BIN) $(BIN)/babel --out-dir ./build/cjs ./lib @@ -38,7 +38,7 @@ test-phantom: $(BIN) @NODE_ENV=test $(BIN)/karma start karma-phantomjs.conf.js dev: $(BIN) clean - $(BIN)/webpack-dev-server + env DRAGGABLE_DEBUG=1 $(BIN)/webpack-dev-server node_modules/.bin: install diff --git a/webpack.config.js b/webpack.config.js index b26a5b67..0542a5a0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -49,7 +49,7 @@ module.exports = (env, argv) => ({ test: /\.(?:js|es).?$/, loader: 'babel-loader', options: { - cacheDirectory: true, + cacheDirectory: false, // intended, have had bugs with env like DRAGGABLE_DEBUG in the past }, exclude: /(node_modules)/ } @@ -57,11 +57,9 @@ module.exports = (env, argv) => ({ }, plugins: [ new webpack.EnvironmentPlugin({ - // Default values - DRAGGABLE_DEBUG: (process.env.DRAGGABLE_DEBUG || ''), - NODE_ENV: ['development', 'production'].includes(argv.mode) ? - argv.mode : - (process.env.NODE_ENV || 'production'), + // these are default values + DRAGGABLE_DEBUG: false, + NODE_ENV: ['development', 'production'].includes(argv.mode) ? argv.mode : 'production' }), // Scope hoisting new webpack.optimize.ModuleConcatenationPlugin(), From 6fd39db47e5be912430120b6c95143d0283f4a48 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Sun, 12 Apr 2020 16:02:52 -0400 Subject: [PATCH 355/412] fix(DraggableCore): fix passing style When using `React.cloneElement(this.props.children, props), we used to override style by spreading it into another object. When that was removed, we simply passed style on, unmodified. It appears some quirk of `cloneElement` causes the render cycle to actually lose the value of `this.props.children.props.style`, causing it to pass `undefined`. This, of course, breaks just about everything. Because this is affecting dependent packages I am pushing an update now then will add a test to catch this. --- lib/DraggableCore.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 3eee1804..a80eb1b8 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -426,8 +426,6 @@ export default class DraggableCore extends React.Component Date: Sun, 12 Apr 2020 16:07:42 -0400 Subject: [PATCH 356/412] release v4.3.1 --- CHANGELOG.md | 14 ++++++++++++++ package.json | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b48eab1..83de21fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +### 4.3.1 (Apr 11, 2020) + +> This is a bugfix release. + +- Happy Easter! +- Fixed a serious bug that caused `` not to pass styles. + - `React.cloneElement` has an odd quirk. When you do: + ```js + return React.cloneElement(this.props.children, {style: this.props.children.props.style}); + ``` + , `style` ends up undefined. +- Fixed a bug that caused debug output to show up in the build. + - `babel-loader` cache does not invalidate when it should. I had modified webpack.config.js in the last version but it reused stale cache. + ### 4.3.0 (Apr 10, 2020) - Fix setState warning after dismount if drag still active. Harmless, but prints a warning. [#424](https://github.com/mzabriskie/react-draggable/pull/424) diff --git a/package.json b/package.json index 93856699..ce2eb7bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.3.0", + "version": "4.3.1", "description": "React draggable component", "main": "build/cjs/cjs.js", "browser": "build/web/react-draggable.min.js", From 5ead0bdc18b6ad011f74d2aae79f519e1b200c36 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 13 Apr 2020 11:31:00 -0400 Subject: [PATCH 357/412] docs(readme): update badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3227116f..6f10ec80 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # React-Draggable -[![TravisCI Build Status](https://travis-ci.org/strml/react-draggable.svg?branch=master)](https://travis-ci.org/strml/react-draggable) +[![TravisCI Build Status](https://api.travis-ci.org/STRML/react-draggable.svg?branch=master)](https://travis-ci.org/strml/react-draggable) [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true)](https://ci.appveyor.com/project/strml/react-draggable) [![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)](http://npmjs.com/package/react-draggable) -[![gzip size](http://img.badgesize.io/https://npmcdn.com/react-draggable/dist/react-draggable.min.js?compression=gzip)]() +[![gzip size](http://img.badgesize.io/https://npmcdn.com/react-draggable/build/web/react-draggable.min.js?compression=gzip)]() [![version](https://img.shields.io/npm/v/react-draggable.svg)]() A simple component for making elements draggable. From 638fc3b1cc6fc411fe02256a235c43923b8bcb13 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 13 Apr 2020 11:32:31 -0400 Subject: [PATCH 358/412] chore(pkg): add node 12 to travis matrix --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index fab94b08..2e3b6ed6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: node_js node_js: - "8" - "10" + - "12" - "node" # latest cache: yarn env: From a227eba8a2206cb77f9a4b3940734ffbe2bf9d2b Mon Sep 17 00:00:00 2001 From: Grady Hallenbeck Date: Tue, 14 Apr 2020 16:33:30 -0700 Subject: [PATCH 359/412] fix: make DraggableCore bounds optional in typings --- typings/index.d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index cee91a44..e5745228 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2,10 +2,10 @@ declare module 'react-draggable' { import * as React from 'react'; export interface DraggableBounds { - left: number - right: number - top: number - bottom: number + left?: number + right?: number + top?: number + bottom?: number } export interface DraggableProps extends DraggableCoreProps { From f1012831898bdcacbf3494b1e98bf0eea97c7dbc Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 16 Apr 2020 13:08:08 -0400 Subject: [PATCH 360/412] fix(types): Flow: make properties of DraggableBounds optional --- README.md | 2 +- lib/Draggable.js | 6 +++--- lib/DraggableCore.js | 7 ------- lib/utils/shims.js | 4 ++-- lib/utils/types.js | 2 +- 5 files changed, 7 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 6f10ec80..766c7ce4 100644 --- a/README.md +++ b/README.md @@ -176,7 +176,7 @@ axis: string, // - An object with `left, top, right, and bottom` properties. // These indicate how far in each direction the draggable // can be moved. -bounds: {left: number, top: number, right: number, bottom: number} | string, +bounds: {left?: number, top?: number, right?: number, bottom?: number} | string, // Specifies a selector to be used to prevent drag initialization. The string is passed to // Element.matches, so it's possible to use multiple selectors like `.first, .second`. diff --git a/lib/Draggable.js b/lib/Draggable.js index 002afc12..74e68539 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -7,9 +7,9 @@ import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import DraggableCore from './DraggableCore'; -import type {ControlPosition, PositionOffsetControlPosition, DraggableBounds, DraggableCoreProps} from './DraggableCore'; +import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps} from './DraggableCore'; import log from './utils/log'; -import type {DraggableEventHandler} from './utils/types'; +import type {Bounds, DraggableEventHandler} from './utils/types'; import type {Element as ReactElement} from 'react'; type DraggableState = { @@ -24,7 +24,7 @@ type DraggableState = { export type DraggableProps = { ...$Exact, axis: 'both' | 'x' | 'y' | 'none', - bounds: DraggableBounds | string | false, + bounds: Bounds | string | false, defaultClassName: string, defaultClassNameDragging: string, defaultClassNameDragged: string, diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index a80eb1b8..62da91f3 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -35,13 +35,6 @@ type DraggableCoreState = { touchIdentifier: ?number }; -export type DraggableBounds = { - left: number, - right: number, - top: number, - bottom: number, -}; - export type DraggableData = { node: HTMLElement, x: number, y: number, diff --git a/lib/utils/shims.js b/lib/utils/shims.js index 96905902..b8141ad8 100644 --- a/lib/utils/shims.js +++ b/lib/utils/shims.js @@ -6,11 +6,11 @@ export function findInArray(array: Array | TouchList, callback: Function): } } -export function isFunction(func: any): boolean { +export function isFunction(func: any): boolean %checks { return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; } -export function isNum(num: any): boolean { +export function isNum(num: any): boolean %checks { return typeof num === 'number' && !isNaN(num); } diff --git a/lib/utils/types.js b/lib/utils/types.js index 5321f63c..31d58136 100644 --- a/lib/utils/types.js +++ b/lib/utils/types.js @@ -11,7 +11,7 @@ export type DraggableData = { }; export type Bounds = { - left: number, top: number, right: number, bottom: number + left?: number, top?: number, right?: number, bottom?: number }; export type ControlPosition = {x: number, y: number}; export type PositionOffsetControlPosition = {x: number|string, y: number|string}; From fc26ec1bc75bc18964b5dbf3a8770de386e38c66 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 12 May 2020 12:15:52 -0400 Subject: [PATCH 361/412] feat(React): add `nodeRef` prop (#478) If running in React Strict mode, ReactDOM.findDOMNode() is deprecated. Unfortunately, in order for to work properly, we need raw access to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef` as in this example: function MyComponent() { const nodeRef = React.useRef(null); return (
Example Target
); } This can be used for arbitrarily nested components, so long as the ref ends up pointing to the actual child DOM node and not a custom component. Thanks to react-transition-group for the inspiration. `nodeRef` is also available on . --- README.md | 22 ++++++++++++++++++++++ lib/Draggable.js | 11 +++++++++-- lib/DraggableCore.js | 36 +++++++++++++++++++++++++++++++----- lib/utils/positionFns.js | 3 +-- specs/draggable.spec.jsx | 20 ++++++++++++++++++++ 5 files changed, 83 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 766c7ce4..8ef9ae29 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,28 @@ onDrag: DraggableEventHandler, // Called when dragging stops. onStop: DraggableEventHandler, +// If running in React Strict mode, ReactDOM.findDOMNode() is deprecated. +// Unfortunately, in order for to work properly, we need raw access +// to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef` +// as in this example: +// +// function MyComponent() { +// const nodeRef = React.useRef(null); +// return ( +// +//
Example Target
+//
+// ); +// } +// +// This can be used for arbitrarily nested components, so long as the ref ends up +// pointing to the actual child DOM node and not a custom component. +// +// Thanks to react-transition-group for the inspiration. +// +// `nodeRef` is also available on . +nodeRef: React.Ref, + // Much like React form elements, if this property is present, the item // becomes 'controlled' and is not responsive to user input. Use `position` // if you need to have direct control of the element. diff --git a/lib/Draggable.js b/lib/Draggable.js index 74e68539..17fbd2b6 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -1,5 +1,5 @@ // @flow -import React from 'react'; +import * as React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; import classNames from 'classnames'; @@ -29,6 +29,7 @@ export type DraggableProps = { defaultClassNameDragging: string, defaultClassNameDragged: string, defaultPosition: ControlPosition, + nodeRef?: ?React.ElementRef, positionOffset: PositionOffsetControlPosition, position: ControlPosition, scale: number @@ -226,7 +227,7 @@ class Draggable extends React.Component { componentDidMount() { // Check to see if the element passed is an instanceof SVGElement - if(typeof window.SVGElement !== 'undefined' && ReactDOM.findDOMNode(this) instanceof window.SVGElement) { + if(typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) { this.setState({isElementSVG: true}); } } @@ -235,6 +236,12 @@ class Draggable extends React.Component { this.setState({dragging: false}); // prevents invariant if unmounted while dragging } + // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find + // the underlying DOM node ourselves. See the README for more information. + findDOMNode(): ?HTMLElement { + return this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); + } + onDragStart: DraggableEventHandler = (e, coreData) => { log('Draggable: onDragStart: %j', coreData); diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 62da91f3..2260fa5a 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -1,5 +1,5 @@ // @flow -import React from 'react'; +import * as React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; import {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, @@ -56,6 +56,7 @@ export type DraggableCoreProps = { offsetParent: HTMLElement, grid: [number, number], handle: string, + nodeRef?: ?React.ElementRef, onStart: DraggableEventHandler, onDrag: DraggableEventHandler, onStop: DraggableEventHandler, @@ -155,6 +156,25 @@ export default class DraggableCore extends React.Component to work properly, we need raw access + * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef` + * as in this example: + * + * function MyComponent() { + * const nodeRef = React.useRef(null); + * return ( + * + *
Example Target
+ *
+ * ); + * } + * + * This can be used for arbitrarily nested components, so long as the ref ends up + * pointing to the actual child DOM node and not a custom component. + */ + nodeRef: PropTypes.object, + /** * Called when dragging starts. * If this function returns the boolean false, dragging will be canceled. @@ -221,7 +241,7 @@ export default class DraggableCore extends React.Component = (e) => { // Make it possible to attach event handlers on top of this one. this.props.onMouseDown(e); @@ -251,7 +277,7 @@ export default class DraggableCore extends React.Component not mounted on DragStart!'); } @@ -365,7 +391,7 @@ export default class DraggableCore extends React.Component: Unmounted during event!'); } diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 470d26ca..a7a1f104 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -722,6 +722,7 @@ describe('react-draggable', function () { assert(data.y === 100); assert(data.deltaX === 100); assert(data.deltaY === 100); + assert(data.node === ReactDOM.findDOMNode(drag)); } drag = TestUtils.renderIntoDocument( @@ -733,6 +734,25 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); }); + it('should call back with correct dom node with nodeRef', function () { + function onDrag(event, data) { + // Being tricky here and installing the ref on the inner child, to ensure it's working + // and not just falling back on ReactDOM.findDOMNode() + assert(data.node === ReactDOM.findDOMNode(drag).firstChild); + } + const nodeRef = React.createRef(); + drag = TestUtils.renderIntoDocument( + + +
+ + + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); + it('should call back on drag, with values within the defined bounds', function(){ function onDrag(event, data) { assert(data.x === 90); From 870dcdee83160707c252bfc21e69c45234a720e8 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 12 May 2020 12:19:35 -0400 Subject: [PATCH 362/412] chore(pkg): upgrade devDeps --- .eslintrc | 1 + package.json | 18 +- yarn.lock | 709 ++++++++++++++++++++++++--------------------------- 3 files changed, 340 insertions(+), 388 deletions(-) diff --git a/.eslintrc b/.eslintrc index 31dfe3be..8145bd08 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,6 +4,7 @@ "plugins": [ "react" ], + "ignorePatterns": ["build/**/*.js"], "rules": { "strict": 0, "quotes": [1, "single"], diff --git a/package.json b/package.json index ce2eb7bb..2a2e945a 100644 --- a/package.json +++ b/package.json @@ -44,10 +44,10 @@ "@babel/core": "^7.9.0", "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-transform-flow-comments": "^7.8.3", - "@babel/preset-env": "^7.9.0", + "@babel/preset-env": "^7.9.5", "@babel/preset-flow": "^7.9.0", "@babel/preset-react": "^7.9.4", - "@types/react": "^16.9.32", + "@types/react": "^16.9.34", "@types/react-dom": "^16.9.6", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", @@ -55,9 +55,9 @@ "babel-plugin-transform-inline-environment-variables": "^0.4.3", "eslint": "^6.8.0", "eslint-plugin-react": "^7.19.0", - "flow-bin": "^0.122.0", + "flow-bin": "^0.123.0", "jasmine-core": "^3.5.0", - "karma": "^4.4.1", + "karma": "^5.0.2", "karma-chrome-launcher": "^3.1.0", "karma-cli": "2.0.0", "karma-firefox-launcher": "^1.3.0", @@ -70,16 +70,14 @@ "phantomjs-prebuilt": "^2.1.16", "power-assert": "^1.4.4", "pre-commit": "^1.2.2", - "puppeteer": "^2.1.1", + "puppeteer": "^3.0.0", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-frame-component": "^2.0.0", + "react-frame-component": "^4.1.1", "react-test-renderer": "^16.13.1", - "semver": "^6.3.0", + "semver": "^7.3.2", "static-server": "^3.0.0", - "terser-webpack-plugin": "^2.3.5", "typescript": "^3.8.3", - "uglify-js": "^3.8.1", "webpack": "^4.42.1", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3" @@ -95,4 +93,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 4f65df78..0ac4aba6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -56,12 +56,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.8.3", "@babel/generator@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" - integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== +"@babel/generator@^7.0.0", "@babel/generator@^7.8.3", "@babel/generator@^7.9.0", "@babel/generator@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" + integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== dependencies: - "@babel/types" "^7.9.0" + "@babel/types" "^7.9.5" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -82,13 +82,13 @@ "@babel/types" "^7.8.3" "@babel/helper-builder-react-jsx-experimental@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.0.tgz#066d80262ade488f9c1b1823ce5db88a4cedaa43" - integrity sha512-3xJEiyuYU4Q/Ar9BsHisgdxZsRlsShMe90URZ0e6przL26CCs8NJbDoxH94kKT17PcxlMhsCAwZd90evCo26VQ== + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz#0b4b3e04e6123f03b404ca4dfd6528fe6bb92fe3" + integrity sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-module-imports" "^7.8.3" - "@babel/types" "^7.9.0" + "@babel/types" "^7.9.5" "@babel/helper-builder-react-jsx@^7.9.0": version "7.9.0" @@ -110,11 +110,11 @@ semver "^5.5.0" "@babel/helper-create-class-features-plugin@^7.8.3": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz#243a5b46e2f8f0f674dc1387631eb6b28b851de0" - integrity sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg== + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.5.tgz#79753d44017806b481017f24b02fd4113c7106ea" + integrity sha512-IipaxGaQmW4TfWoXdqjY0TzoXQ1HRS0kPpEgvjosb3u7Uedcq297xFqDQiCcQtRRwzIMif+N1MLVI8C5a4/PAA== dependencies: - "@babel/helper-function-name" "^7.8.3" + "@babel/helper-function-name" "^7.9.5" "@babel/helper-member-expression-to-functions" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -147,14 +147,14 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== +"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" + integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== dependencies: "@babel/helper-get-function-arity" "^7.8.3" "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/types" "^7.9.5" "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" @@ -252,10 +252,10 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" + integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== "@babel/helper-wrap-function@^7.8.3": version "7.8.3" @@ -339,13 +339,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-numeric-separator" "^7.8.3" -"@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" - integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== +"@babel/plugin-proposal-object-rest-spread@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz#3fd65911306d8746014ec0d0cf78f0e39a149116" + integrity sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.9.5" "@babel/plugin-proposal-optional-catch-binding@^7.8.3": version "7.8.3" @@ -479,14 +480,14 @@ "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" - integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== +"@babel/plugin-transform-classes@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" + integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" + "@babel/helper-function-name" "^7.9.5" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.6" @@ -500,10 +501,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-destructuring@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" - integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== +"@babel/plugin-transform-destructuring@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" + integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -635,10 +636,10 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.8.7": - version "7.9.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" - integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== +"@babel/plugin-transform-parameters@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" + integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== dependencies: "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -751,10 +752,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/preset-env@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" - integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== +"@babel/preset-env@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f" + integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ== dependencies: "@babel/compat-data" "^7.9.0" "@babel/helper-compilation-targets" "^7.8.7" @@ -765,7 +766,7 @@ "@babel/plugin-proposal-json-strings" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/plugin-proposal-object-rest-spread" "^7.9.5" "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining" "^7.9.0" "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" @@ -782,9 +783,9 @@ "@babel/plugin-transform-async-to-generator" "^7.8.3" "@babel/plugin-transform-block-scoped-functions" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.0" + "@babel/plugin-transform-classes" "^7.9.5" "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.9.5" "@babel/plugin-transform-dotall-regex" "^7.8.3" "@babel/plugin-transform-duplicate-keys" "^7.8.3" "@babel/plugin-transform-exponentiation-operator" "^7.8.3" @@ -799,7 +800,7 @@ "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" "@babel/plugin-transform-new-target" "^7.8.3" "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.8.7" + "@babel/plugin-transform-parameters" "^7.9.5" "@babel/plugin-transform-property-literals" "^7.8.3" "@babel/plugin-transform-regenerator" "^7.8.7" "@babel/plugin-transform-reserved-words" "^7.8.3" @@ -810,7 +811,7 @@ "@babel/plugin-transform-typeof-symbol" "^7.8.4" "@babel/plugin-transform-unicode-regex" "^7.8.3" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.0" + "@babel/types" "^7.9.5" browserslist "^4.9.1" core-js-compat "^3.6.2" invariant "^2.2.2" @@ -873,26 +874,26 @@ "@babel/types" "^7.8.6" "@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" + integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-function-name" "^7.8.3" + "@babel/generator" "^7.9.5" + "@babel/helper-function-name" "^7.9.5" "@babel/helper-split-export-declaration" "^7.8.3" "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/types" "^7.9.5" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== +"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" + integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== dependencies: - "@babel/helper-validator-identifier" "^7.9.0" + "@babel/helper-validator-identifier" "^7.9.5" lodash "^4.17.13" to-fast-properties "^2.0.0" @@ -926,9 +927,9 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "13.11.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.0.tgz#390ea202539c61c8fa6ba4428b57e05bc36dc47b" - integrity sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ== + version "13.11.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.1.tgz#49a2a83df9d26daacead30d0ccc8762b128d53c7" + integrity sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g== "@types/prop-types@*": version "15.7.3" @@ -942,14 +943,21 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.9.32": - version "16.9.32" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.32.tgz#f6368625b224604148d1ddf5920e4fefbd98d383" - integrity sha512-fmejdp0CTH00mOJmxUPPbWCEBWPvRIL4m8r0qD+BSDUqmutPyGQCHifzMpMzdvZwROdEdL78IuZItntFWgPXHQ== +"@types/react@*", "@types/react@^16.9.34": + version "16.9.34" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.34.tgz#f7d5e331c468f53affed17a8a4d488cd44ea9349" + integrity sha512-8AJlYMOfPe1KGLKyHpflCg5z46n0b5DbRfqDksxBLBTUpB75ypDBAO9eCUcjNwE6LCUslwTz00yyG/X9gaVtow== dependencies: "@types/prop-types" "*" csstype "^2.2.0" +"@types/yauzl@^2.9.1": + version "2.9.1" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" + integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + dependencies: + "@types/node" "*" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -1148,14 +1156,6 @@ agent-base@5: resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== -aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -1230,7 +1230,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== @@ -1530,12 +1530,21 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bl@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" + integrity sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + blob@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== -bluebird@^3.3.0, bluebird@^3.5.5: +bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -1668,7 +1677,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.8.3, browserslist@^4.9.1: +browserslist@^4.8.5, browserslist@^4.9.1: version "4.11.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== @@ -1678,29 +1687,11 @@ browserslist@^4.8.3, browserslist@^4.9.1: node-releases "^1.1.53" pkg-up "^2.0.0" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -1725,6 +1716,14 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.2.1, buffer@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -1761,30 +1760,6 @@ cacache@^12.0.2: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== - dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" - fs-minipass "^2.0.0" - glob "^7.1.4" - graceful-fs "^4.2.2" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" - promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" - unique-filename "^1.1.1" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1831,9 +1806,9 @@ camelcase@^5.0.0: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001038: - version "1.0.30001038" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" - integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== + version "1.0.30001042" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001042.tgz#c91ec21ec2d270bd76dbc2ce261260c292b8c93c" + integrity sha512-igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw== caseless@~0.12.0: version "0.12.0" @@ -1907,7 +1882,7 @@ chokidar@^3.0.0: optionalDependencies: fsevents "~2.1.2" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -1942,11 +1917,6 @@ classnames@^2.2.5: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -1955,9 +1925,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== cliui@^4.0.0: version "4.1.0" @@ -1977,6 +1947,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -2035,7 +2014,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.20.0, commander@^2.3.0, commander@~2.20.3: +commander@^2.20.0, commander@^2.3.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2182,17 +2161,17 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.6.2: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" - integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== dependencies: - browserslist "^4.8.3" + browserslist "^4.8.5" semver "7.0.0" core-js-pure@^3.0.0: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" - integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" + integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== core-js@^2.0.0: version "2.6.11" @@ -2534,9 +2513,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.390: - version "1.3.395" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.395.tgz#2c531a0477bcc41deb440877d1f27509ed286aed" - integrity sha512-kdn2cX6hZXDdz/O2Q8tZscITlsSv1a/7bOq/fQs7QAJ9iaRlnhZPccarNhxZv1tXgmgwCnKp/1lJNYLOG8Dxiw== + version "1.3.412" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.412.tgz#da0475c653b48e5935f300aa9c875377bf8ddcf9" + integrity sha512-4bVdSeJScR8fT7ERveLWbxemY5uXEHVseqMRyORosiKcTUSGtVwBkV8uLjXCqoFLeImA57Z9hbz3TOid01U4Hw== elliptic@^6.0.0: version "6.5.2" @@ -2592,7 +2571,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -2831,11 +2810,11 @@ espurify@^1.6.0: core-js "^2.0.0" esquery@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe" - integrity sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q== + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== dependencies: - estraverse "^5.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: version "4.2.1" @@ -2849,10 +2828,10 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" - integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== esutils@^2.0.2: version "2.0.3" @@ -3001,7 +2980,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.6.5, extract-zip@^1.6.6: +extract-zip@^1.6.5: version "1.7.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== @@ -3011,6 +2990,17 @@ extract-zip@^1.6.5, extract-zip@^1.6.6: mkdirp "^0.5.4" yauzl "^2.10.0" +extract-zip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.0.tgz#f53b71d44f4ff5a4527a2259ade000fb8b303492" + integrity sha512-i42GQ498yibjdvIhivUsRslx608whtGoFIhF26Z7O4MYncBxp8CwalOs1lnHy21A9sIohWO2+uiE4SRtC9JXDg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -3125,15 +3115,6 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -3148,7 +3129,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -3180,10 +3161,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@^0.122.0: - version "0.122.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.122.0.tgz#c723a2b33b1a70bd10204704ae1dc776d5d89d79" - integrity sha512-my8N5jgl/A+UVby9E7NDppHdhLgRbWgKbmFZSx2MSYMRh3d9YGnM2MM+wexpUpl0ftY1IM6ZcUwaAhrypLyvlA== +flow-bin@^0.123.0: + version "0.123.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.123.0.tgz#7ba61a0b8775928cf4943ccf78eed2b1b05f7b3a" + integrity sha512-Ylcf8YDIM/KrqtxkPuq+f8O+6sdYA2Nuz5f+sWHlp539DatZz3YMcsO1EiXaf1C11HJgpT/3YGYe7xZ9/UZmvQ== flush-write-stream@^1.0.0: version "1.1.1" @@ -3244,6 +3225,11 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" @@ -3262,13 +3248,6 @@ fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" @@ -3334,6 +3313,13 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -3432,7 +3418,7 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== @@ -3578,9 +3564,9 @@ hpack.js@^2.1.6: wbuf "^1.1.0" html-entities@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + version "1.3.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== http-deceiver@^1.2.7: version "1.2.7" @@ -3708,17 +3694,12 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= -infer-owner@^1.0.3, infer-owner@^1.0.4: +infer-owner@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== @@ -3731,7 +3712,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4054,12 +4035,10 @@ isarray@2.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= -isbinaryfile@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" +isbinaryfile@^4.0.2: + version "4.0.6" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" + integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== isexe@^2.0.0: version "2.0.0" @@ -4088,14 +4067,6 @@ jasmine-core@^3.5.0: resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4" integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA== -jest-worker@^25.1.0: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.6.tgz#d1292625326794ce187c38f51109faced3846c58" - integrity sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA== - dependencies: - merge-stream "^2.0.0" - supports-color "^7.0.0" - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4162,9 +4133,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" - integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: minimist "^1.2.5" @@ -4260,12 +4231,11 @@ karma-webpack@^4.0.2: source-map "^0.7.3" webpack-dev-middleware "^3.7.0" -karma@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" - integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== +karma@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/karma/-/karma-5.0.2.tgz#e404373dac6e3fa08409ae4d9eda7d83adb43ee5" + integrity sha512-RpUuCuGJfN3WnjYPGIH+VBF8023Lfm3TQH6D1kcNL+FxtEPc2UUz/nVjbVAGXH4Pm+Q7FVOAQjdAeFUpXpQ3IA== dependencies: - bluebird "^3.3.0" body-parser "^1.16.1" braces "^3.0.2" chokidar "^3.0.0" @@ -4277,20 +4247,19 @@ karma@^4.4.1: glob "^7.1.1" graceful-fs "^4.1.2" http-proxy "^1.13.0" - isbinaryfile "^3.0.0" + isbinaryfile "^4.0.2" lodash "^4.17.14" log4js "^4.0.0" mime "^2.3.1" minimatch "^3.0.2" - optimist "^0.6.1" qjobs "^1.1.4" range-parser "^1.2.0" rimraf "^2.6.0" - safe-buffer "^5.0.1" socket.io "2.1.1" source-map "^0.6.1" tmp "0.0.33" - useragent "2.3.0" + ua-parser-js "0.7.21" + yargs "^15.3.1" kew@^0.7.0: version "0.7.0" @@ -4423,9 +4392,9 @@ log4js@^4.0.0: streamroller "^1.0.6" loglevel@^1.6.6: - version "1.6.7" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" - integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== + version "1.6.8" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" + integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" @@ -4434,7 +4403,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lru-cache@4.1.x, lru-cache@^4.0.1: +lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -4457,13 +4426,6 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== - dependencies: - semver "^6.0.0" - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -4527,11 +4489,6 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -4608,39 +4565,11 @@ minimatch@^3.0.2, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5, minimist@~0.0.1: +minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" - integrity sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" - integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w== - dependencies: - yallist "^4.0.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -4665,10 +4594,15 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp-classic@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" + integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== + mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" - integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" @@ -4852,9 +4786,12 @@ object-inspect@^1.7.0: integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== object-is@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" - integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" object-keys@^1.0.0, object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -4953,14 +4890,6 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -5026,10 +4955,10 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -5059,13 +4988,6 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - p-retry@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -5260,13 +5182,6 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" @@ -5520,21 +5435,23 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-2.1.1.tgz#ccde47c2a688f131883b50f2d697bd25189da27e" - integrity sha512-LWzaDVQkk1EPiuYeTOj+CZRIjda4k2s5w4MK4xoH2+kgWV/SDlkYHmxatDdtYrciHUKSXTsGgPgPP8ILVdBsxg== +puppeteer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.0.0.tgz#844c714d074c7ea63cfa3744501c1ab6ea60722e" + integrity sha512-ArmIS8w+XhL4KGP05kxMousA9SFxmeirMkNNcVe5LjK4iGCbZ8qKnG4byuXMru7Ty7a9QwiMUIf80X+zmJuf2A== dependencies: "@types/mime-types" "^2.1.0" debug "^4.1.0" - extract-zip "^1.6.6" + extract-zip "^2.0.0" https-proxy-agent "^4.0.0" mime "^2.0.3" mime-types "^2.1.25" progress "^2.0.1" proxy-from-env "^1.0.0" - rimraf "^2.6.1" - ws "^6.1.0" + rimraf "^3.0.2" + tar-fs "^2.0.0" + unbzip2-stream "^1.3.3" + ws "^7.2.3" qjobs@^1.1.4: version "1.2.0" @@ -5606,10 +5523,10 @@ react-dom@^16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-frame-component@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-2.0.2.tgz#e602a980e1d78f91f471531225b61cfdbf68e614" - integrity sha1-5gKpgOHXj5H0cVMSJbYc/b9o5hQ= +react-frame-component@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.1.tgz#ea8f7c518ef6b5ad72146dd1f648752369826894" + integrity sha512-NfJp90AvYA1R6+uSYafQ+n+UM2HjHqi4WGHeprVXa6quU9d8o6ZFRzQ36uemY82dlkZFzf2jigFx6E4UzNFajA== react-is@^16.8.1, react-is@^16.8.6: version "16.13.1" @@ -5648,7 +5565,7 @@ react@^16.13.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -5842,9 +5759,9 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.12.0, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.3.3: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + version "1.16.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.0.tgz#063dc704fa3413e13ac1d0d1756a7cbfe95dd1a7" + integrity sha512-LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA== dependencies: path-parse "^1.0.6" @@ -5878,13 +5795,20 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -5953,10 +5877,10 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.4, schema-utils@^2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" - integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== +schema-utils@^2.6.5: + version "2.6.6" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c" + integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA== dependencies: ajv "^6.12.0" ajv-keywords "^3.4.1" @@ -5983,11 +5907,16 @@ semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: +semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -6280,9 +6209,9 @@ spdy-transport@^3.0.0: wbuf "^1.7.3" spdy@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" - integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" handle-thing "^2.0.0" @@ -6324,14 +6253,6 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== - dependencies: - figgy-pudding "^3.5.1" - minipass "^3.1.1" - static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -6424,7 +6345,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -6446,9 +6367,9 @@ string.prototype.matchall@^4.0.2: side-channel "^1.0.2" string.prototype.trimend@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz#ee497fd29768646d84be2c9b819e292439614373" - integrity sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== dependencies: define-properties "^1.1.3" es-abstract "^1.17.5" @@ -6472,9 +6393,9 @@ string.prototype.trimright@^2.1.1: string.prototype.trimend "^1.0.0" string.prototype.trimstart@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz#afe596a7ce9de905496919406c9734845f01a2f2" - integrity sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w== + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== dependencies: define-properties "^1.1.3" es-abstract "^1.17.5" @@ -6543,9 +6464,9 @@ strip-eof@^1.0.0: integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-json-comments@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== supports-color@6.1.0, supports-color@^6.1.0: version "6.1.0" @@ -6566,7 +6487,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== @@ -6588,6 +6509,27 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tar-fs@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" + integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" + integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== + dependencies: + bl "^4.0.1" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -6603,25 +6545,10 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" - integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== - dependencies: - cacache "^13.0.1" - find-cache-dir "^3.2.0" - jest-worker "^25.1.0" - p-limit "^2.2.2" - schema-utils "^2.6.4" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.4.3" - webpack-sources "^1.4.3" - -terser@^4.1.2, terser@^4.4.3: - version "4.6.10" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.10.tgz#90f5bd069ff456ddbc9503b18e52f9c493d3b7c2" - integrity sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA== +terser@^4.1.2: + version "4.6.11" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.11.tgz#12ff99fdd62a26de2a82f508515407eb6ccd8a9f" + integrity sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -6645,7 +6572,7 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.6: +through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -6662,7 +6589,7 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: +tmp@0.0.33, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -6796,19 +6723,24 @@ typescript@^3.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== -uglify-js@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.1.tgz#43bb15ce6f545eaa0a64c49fd29375ea09fa0f93" - integrity sha512-W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw== - dependencies: - commander "~2.20.3" - source-map "~0.6.1" +ua-parser-js@0.7.21: + version "0.7.21" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== +unbzip2-stream@^1.3.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.1.tgz#151b104af853df3efdaa135d8b1eca850a44b426" + integrity sha512-sgDYfSDPMsA4Hr2/w7vOlrJBlwzmyakk1+hW8ObLvxSp0LA36LcL2XItGvOT3OSblohSdevMuT8FQjLsqyy4sA== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -6921,14 +6853,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7083,7 +7007,7 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.4.0, webpack-sources@^1.4.1: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -7158,11 +7082,6 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -7187,6 +7106,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -7199,13 +7127,18 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^6.1.0, ws@^6.2.1: +ws@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" +ws@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== + ws@~3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" @@ -7247,11 +7180,6 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" @@ -7268,6 +7196,14 @@ yargs-parser@^13.1.0: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^18.1.1: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" @@ -7303,6 +7239,23 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" +yargs@^15.3.1: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" + yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 7f8107183724e9e0b26908f65ca7a0e2d3e70781 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 12 May 2020 12:20:09 -0400 Subject: [PATCH 363/412] fix(build): remove "browser" field in package.json There is nothing special in the browser build that is actually practical for modern use. The "browser" field, as defined in https://github.com/defunctzombie/package-browser-field-spec#overview, indicates that you should use it if you are directly accessing globals, using browser-specific features, dom manipulation, etc. React components like react-draggable are built to do minimal raw DOM manipulation, and to always gate this behind conditionals to ensure that server-side rendering still works. We don't make any changes to any of that for the "browser" build, so it's entirely redundant. Hoping this also fixes the "Super expression must either be null or a function" error (#472) that some users have experienced with particular bundler configurations. The browser build may still be imported at "build/web/react-draggable.min.js". This is to prevent breakage only. The file is no longer minified to prevent possible [terser bugs](https://github.com/terser/terser/issues/308). --- package.json | 1 - webpack.config.js | 7 +------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/package.json b/package.json index 2a2e945a..4266bc3d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,6 @@ "version": "4.3.1", "description": "React draggable component", "main": "build/cjs/cjs.js", - "browser": "build/web/react-draggable.min.js", "module": "build/module/Draggable.js", "scripts": { "test": "make test", diff --git a/webpack.config.js b/webpack.config.js index 0542a5a0..fe275647 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,5 @@ const path = require('path'); const webpack = require('webpack'); -const TerserPlugin = require('terser-webpack-plugin'); // Grabbed in .babelrc.js to switch on transpiling modules. // We want webpack to handle modules if possible. @@ -65,10 +64,6 @@ module.exports = (env, argv) => ({ new webpack.optimize.ModuleConcatenationPlugin(), ], optimization: { - minimizer: [new TerserPlugin({ - include: /\.min\.js$/, - sourceMap: true, - terserOptions: {} - })], + minimize: false, } }); From 002671fb5aac42b94973a549a17d168b5fb587dc Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 12 May 2020 12:39:48 -0400 Subject: [PATCH 364/412] release v4.4.0 --- CHANGELOG.md | 43 +++++++++++++++++++++++++++++++++++++++++++ package.json | 4 ++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83de21fe..7405d1d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,48 @@ # Changelog +### 4.4.0 (May 12, 2020) + +- Add `nodeRef`: + - If running in React Strict mode, ReactDOM.findDOMNode() is deprecated. + Unfortunately, in order for to work properly, we need raw access + to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef` + as in this example: + ```js + function MyComponent() { + const nodeRef = React.useRef(null); + return ( + +
Example Target
+
+ ); + } + ```` + This can be used for arbitrarily nested components, so long as the ref ends up + pointing to the actual child DOM node and not a custom component. + Thanks to react-transition-group for the inspiration. + `nodeRef` is also available on . +- Remove "browser" field in "package.json": + - There is nothing special in the browser build that is actually practical + for modern use. The "browser" field, as defined in + https://github.com/defunctzombie/package-browser-field-spec#overview, + indicates that you should use it if you are directly accessing globals, + using browser-specific features, dom manipulation, etc. + + React components like react-draggable are built to do minimal raw + DOM manipulation, and to always gate this behind conditionals to ensure + that server-side rendering still works. We don't make any changes + to any of that for the "browser" build, so it's entirely redundant. + + This should also fix the "Super expression must either be null or + a function" error (#472) that some users have experienced with particular + bundler configurations. + + The browser build may still be imported at "build/web/react-draggable.min.js". + This is to prevent breakage only. The file is no longer minified to prevent + possible [terser bugs](https://github.com/terser/terser/issues/308). + - The browser build will likely be removed entirely in 5.0. +- Fix: Make `bounds` optional in TypeScript [#473](https://github.com/strml/react-draggable/pull/473) + ### 4.3.1 (Apr 11, 2020) > This is a bugfix release. diff --git a/package.json b/package.json index 4266bc3d..0d90978d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.3.1", + "version": "4.4.0", "description": "React draggable component", "main": "build/cjs/cjs.js", "module": "build/module/Draggable.js", @@ -92,4 +92,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} +} \ No newline at end of file From 75d75d7a118744ec548ebed211fda501c8290a54 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 12 May 2020 16:08:58 -0400 Subject: [PATCH 365/412] fix(test): downgrade karma so we can keep testing Node 8 --- package.json | 2 +- yarn.lock | 154 ++++++++++++++++++++------------------------------- 2 files changed, 62 insertions(+), 94 deletions(-) diff --git a/package.json b/package.json index 0d90978d..5f4ee848 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "eslint-plugin-react": "^7.19.0", "flow-bin": "^0.123.0", "jasmine-core": "^3.5.0", - "karma": "^5.0.2", + "karma": "^4.4.1", "karma-chrome-launcher": "^3.1.0", "karma-cli": "2.0.0", "karma-firefox-launcher": "^1.3.0", diff --git a/yarn.lock b/yarn.lock index 0ac4aba6..9ef63807 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1230,7 +1230,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== @@ -1544,7 +1544,7 @@ blob@0.0.5: resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== -bluebird@^3.5.5: +bluebird@^3.3.0, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -1687,11 +1687,29 @@ browserslist@^4.8.5, browserslist@^4.9.1: node-releases "^1.1.53" pkg-up "^2.0.0" +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -1947,15 +1965,6 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -3129,14 +3138,6 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - findup-sync@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -4035,10 +4036,12 @@ isarray@2.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= -isbinaryfile@^4.0.2: - version "4.0.6" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" - integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== +isbinaryfile@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" isexe@^2.0.0: version "2.0.0" @@ -4231,11 +4234,12 @@ karma-webpack@^4.0.2: source-map "^0.7.3" webpack-dev-middleware "^3.7.0" -karma@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/karma/-/karma-5.0.2.tgz#e404373dac6e3fa08409ae4d9eda7d83adb43ee5" - integrity sha512-RpUuCuGJfN3WnjYPGIH+VBF8023Lfm3TQH6D1kcNL+FxtEPc2UUz/nVjbVAGXH4Pm+Q7FVOAQjdAeFUpXpQ3IA== +karma@^4.0.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" + integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== dependencies: + bluebird "^3.3.0" body-parser "^1.16.1" braces "^3.0.2" chokidar "^3.0.0" @@ -4247,19 +4251,20 @@ karma@^5.0.2: glob "^7.1.1" graceful-fs "^4.1.2" http-proxy "^1.13.0" - isbinaryfile "^4.0.2" + isbinaryfile "^3.0.0" lodash "^4.17.14" log4js "^4.0.0" mime "^2.3.1" minimatch "^3.0.2" + optimist "^0.6.1" qjobs "^1.1.4" range-parser "^1.2.0" rimraf "^2.6.0" + safe-buffer "^5.0.1" socket.io "2.1.1" source-map "^0.6.1" tmp "0.0.33" - ua-parser-js "0.7.21" - yargs "^15.3.1" + useragent "2.3.0" kew@^0.7.0: version "0.7.0" @@ -4368,13 +4373,6 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.6.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" @@ -4403,7 +4401,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lru-cache@^4.0.1: +lru-cache@4.1.x, lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -4565,7 +4563,7 @@ minimatch@^3.0.2, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5, minimist@~0.0.1: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -4890,6 +4888,14 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -4955,7 +4961,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -4976,13 +4982,6 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -5082,11 +5081,6 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6345,7 +6339,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -6589,7 +6583,7 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -tmp@0.0.33, tmp@^0.0.33: +tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -6723,11 +6717,6 @@ typescript@^3.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== -ua-parser-js@0.7.21: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== - ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -6853,6 +6842,14 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +useragent@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== + dependencies: + lru-cache "4.1.x" + tmp "0.0.x" + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7082,6 +7079,11 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -7106,15 +7108,6 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -7196,14 +7189,6 @@ yargs-parser@^13.1.0: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.1: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" @@ -7239,23 +7224,6 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" -yargs@^15.3.1: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.1" - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From fa030e27f3130e1077da58720f5449d3dd36986e Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 12 May 2020 17:22:33 -0400 Subject: [PATCH 366/412] fix(build): no longer publishing "module" either Giving up on this: there isn't a great reason to publish modules here as they won't be significantly tree-shook, and it bloats the published package. Fixes incompatiblity in 4.4.0 with webpack, where webpack is now selecting "module" because "browser" is no longer present. --- .babelrc.js | 9 +-------- Makefile | 3 --- karma-phantomjs.conf.js | 2 -- webpack.config.js | 5 ----- 4 files changed, 1 insertion(+), 18 deletions(-) diff --git a/.babelrc.js b/.babelrc.js index 6f48c713..34bd349d 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -1,18 +1,11 @@ 'use strict'; -// If set, we put Babel in "esmMode", i.e. leave import/export intact. -// Good for webpack and for an esm build. -const esmMode = process.env.BABEL_MODULE_TYPE === "module"; -const es6Compat = process.env.BABEL_ES_COMPAT === "6"; - module.exports = { "presets": [ [ "@babel/preset-env", { - // Don't transpile import/export in esmMode. - modules: esmMode ? false : "auto", - targets: es6Compat ? "maintained node versions" : undefined + targets: "> 0.25%, not dead" }, ], "@babel/react", diff --git a/Makefile b/Makefile index ce6aff4b..a931e54b 100644 --- a/Makefile +++ b/Makefile @@ -21,9 +21,6 @@ build: clean build-cjs build-esm build-web build-cjs: $(BIN) $(BIN)/babel --out-dir ./build/cjs ./lib -build-esm: $(BIN) - env BABEL_MODULE_TYPE="module" BABEL_ES_COMPAT="6" $(BIN)/babel --out-dir ./build/module ./lib - build-web: $(BIN) $(BIN)/webpack --mode=production --display-modules diff --git a/karma-phantomjs.conf.js b/karma-phantomjs.conf.js index 9f42a0a7..78600a02 100644 --- a/karma-phantomjs.conf.js +++ b/karma-phantomjs.conf.js @@ -1,8 +1,6 @@ 'use strict'; const baseConfig = require('./karma.conf.js'); -// Phantom build can't handle the modern JS in the module build -process.env.BABEL_MODULE_TYPE = 'cjs'; module.exports = function(config) { // Set base config options. diff --git a/webpack.config.js b/webpack.config.js index fe275647..6615d149 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,11 +1,6 @@ const path = require('path'); const webpack = require('webpack'); -// Grabbed in .babelrc.js to switch on transpiling modules. -// We want webpack to handle modules if possible. -// This can be overridden and webpack will handle babelified CJS. -process.env.BABEL_MODULE_TYPE = process.env.BABEL_MODULE_TYPE || 'module'; - module.exports = (env, argv) => ({ entry: { 'react-draggable.min': './lib/cjs.js', From c7d87c3517e177afc2f27d1f1034a4df47c2ee55 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 12 May 2020 17:25:59 -0400 Subject: [PATCH 367/412] release v4.4.1 --- CHANGELOG.md | 9 +++++++++ package.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7405d1d1..03669f66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### 4.4.1 (May 12, 2020) + +- Fix: Remove "module" definition in package.json + - Giving up on this: there isn't a great reason to publish modules + here as they won't be significantly tree-shook, and it bloats + the published package. + - Fixes incompatiblity in 4.4.0 with webpack, where webpack is now + selecting "module" because "browser" is no longer present. + ### 4.4.0 (May 12, 2020) - Add `nodeRef`: diff --git a/package.json b/package.json index 5f4ee848..c4973c1c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.4.0", + "version": "4.4.1", "description": "React draggable component", "main": "build/cjs/cjs.js", "module": "build/module/Draggable.js", From 300f1078b8259f54a3fe5d375ef5231ba556f30e Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 14 May 2020 10:36:26 -0400 Subject: [PATCH 368/412] fix(module): rem "module" from package.json Fixes #482 --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index c4973c1c..5505d231 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,6 @@ "version": "4.4.1", "description": "React draggable component", "main": "build/cjs/cjs.js", - "module": "build/module/Draggable.js", "scripts": { "test": "make test", "test-phantom": "make test-phantom", From 2c15caf2dbd6b3a86b25b35e650eed85f0cba3dd Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 14 May 2020 10:37:41 -0400 Subject: [PATCH 369/412] release v4.4.2 --- CHANGELOG.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03669f66..f48385fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 4.4.2 (May 14, 2020) + +- Fix: Remove "module" from package.json (it is no longer being built) + - Fixes #482 + ### 4.4.1 (May 12, 2020) - Fix: Remove "module" definition in package.json diff --git a/package.json b/package.json index 5505d231..31062ba9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.4.1", + "version": "4.4.2", "description": "React draggable component", "main": "build/cjs/cjs.js", "scripts": { From a26ed8d5c3672c84e0ab256fc204179a47f6b76b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 5 Jun 2020 13:51:45 -0400 Subject: [PATCH 370/412] chore(deps): update devDeps, rem Node 8 from Travis (#490) Node 8 is out of LTS, and holding us back on karma & puppeteer --- .travis.yml | 1 - package.json | 28 +- yarn.lock | 1280 +++++++++++++++++++++++++------------------------- 3 files changed, 663 insertions(+), 646 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2e3b6ed6..e5838902 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: node_js node_js: - - "8" - "10" - "12" - "node" # latest diff --git a/package.json b/package.json index 31062ba9..542d6f3b 100644 --- a/package.json +++ b/package.json @@ -39,23 +39,23 @@ "homepage": "https://github.com/mzabriskie/react-draggable", "devDependencies": { "@babel/cli": "^7.8.4", - "@babel/core": "^7.9.0", + "@babel/core": "^7.9.6", "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-transform-flow-comments": "^7.8.3", - "@babel/preset-env": "^7.9.5", + "@babel/preset-env": "^7.9.6", "@babel/preset-flow": "^7.9.0", "@babel/preset-react": "^7.9.4", - "@types/react": "^16.9.34", - "@types/react-dom": "^16.9.6", + "@types/react": "^16.9.35", + "@types/react-dom": "^16.9.8", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "babel-plugin-espower": "^3.0.1", "babel-plugin-transform-inline-environment-variables": "^0.4.3", - "eslint": "^6.8.0", - "eslint-plugin-react": "^7.19.0", - "flow-bin": "^0.123.0", + "eslint": "^7.0.0", + "eslint-plugin-react": "^7.20.0", + "flow-bin": "^0.125.1", "jasmine-core": "^3.5.0", - "karma": "^4.4.1", + "karma": "^5.0.9", "karma-chrome-launcher": "^3.1.0", "karma-cli": "2.0.0", "karma-firefox-launcher": "^1.3.0", @@ -68,17 +68,17 @@ "phantomjs-prebuilt": "^2.1.16", "power-assert": "^1.4.4", "pre-commit": "^1.2.2", - "puppeteer": "^3.0.0", + "puppeteer": "^3.1.0", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-frame-component": "^4.1.1", + "react-frame-component": "^4.1.2", "react-test-renderer": "^16.13.1", "semver": "^7.3.2", "static-server": "^3.0.0", - "typescript": "^3.8.3", - "webpack": "^4.42.1", + "typescript": "^3.9.3", + "webpack": "^4.43.0", "webpack-cli": "^3.3.11", - "webpack-dev-server": "^3.10.3" + "webpack-dev-server": "^3.11.0" }, "resolutions": { "minimist": "^1.2.5" @@ -91,4 +91,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 9ef63807..55663259 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,28 +25,28 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" - integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== +"@babel/compat-data@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" + integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g== dependencies: - browserslist "^4.9.1" + browserslist "^4.11.1" invariant "^2.2.4" semver "^5.5.0" -"@babel/core@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== +"@babel/core@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" + integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" + "@babel/generator" "^7.9.6" "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" + "@babel/helpers" "^7.9.6" + "@babel/parser" "^7.9.6" "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -56,12 +56,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.8.3", "@babel/generator@^7.9.0", "@babel/generator@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" - integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== +"@babel/generator@^7.0.0", "@babel/generator@^7.8.3", "@babel/generator@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" + integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== dependencies: - "@babel/types" "^7.9.5" + "@babel/types" "^7.9.6" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -98,27 +98,27 @@ "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/types" "^7.9.0" -"@babel/helper-compilation-targets@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" - integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== +"@babel/helper-compilation-targets@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a" + integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw== dependencies: - "@babel/compat-data" "^7.8.6" - browserslist "^4.9.1" + "@babel/compat-data" "^7.9.6" + browserslist "^4.11.1" invariant "^2.2.4" levenary "^1.1.1" semver "^5.5.0" "@babel/helper-create-class-features-plugin@^7.8.3": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.5.tgz#79753d44017806b481017f24b02fd4113c7106ea" - integrity sha512-IipaxGaQmW4TfWoXdqjY0TzoXQ1HRS0kPpEgvjosb3u7Uedcq297xFqDQiCcQtRRwzIMif+N1MLVI8C5a4/PAA== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz#965c8b0a9f051801fd9d3b372ca0ccf200a90897" + integrity sha512-6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow== dependencies: "@babel/helper-function-name" "^7.9.5" "@babel/helper-member-expression-to-functions" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-replace-supers" "^7.9.6" "@babel/helper-split-export-declaration" "^7.8.3" "@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": @@ -227,15 +227,15 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6", "@babel/helper-replace-supers@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" + integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== dependencies: "@babel/helper-member-expression-to-functions" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" "@babel/helper-simple-access@^7.8.3": version "7.8.3" @@ -267,14 +267,14 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== +"@babel/helpers@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" + integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== dependencies: "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" "@babel/highlight@^7.8.3": version "7.9.0" @@ -285,10 +285,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== +"@babel/parser@^7.0.0", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" + integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" @@ -339,10 +339,10 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-numeric-separator" "^7.8.3" -"@babel/plugin-proposal-object-rest-spread@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz#3fd65911306d8746014ec0d0cf78f0e39a149116" - integrity sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg== +"@babel/plugin-proposal-object-rest-spread@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" + integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" @@ -577,34 +577,34 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" - integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== +"@babel/plugin-transform-modules-amd@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e" + integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw== dependencies: "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" - integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== +"@babel/plugin-transform-modules-commonjs@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" + integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ== dependencies: "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" - integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== +"@babel/plugin-transform-modules-systemjs@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4" + integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg== dependencies: "@babel/helper-hoist-variables" "^7.8.3" "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.9.0": version "7.9.0" @@ -752,13 +752,13 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/preset-env@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f" - integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ== +"@babel/preset-env@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6" + integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ== dependencies: - "@babel/compat-data" "^7.9.0" - "@babel/helper-compilation-targets" "^7.8.7" + "@babel/compat-data" "^7.9.6" + "@babel/helper-compilation-targets" "^7.9.6" "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-proposal-async-generator-functions" "^7.8.3" @@ -766,7 +766,7 @@ "@babel/plugin-proposal-json-strings" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.5" + "@babel/plugin-proposal-object-rest-spread" "^7.9.6" "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining" "^7.9.0" "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" @@ -793,9 +793,9 @@ "@babel/plugin-transform-function-name" "^7.8.3" "@babel/plugin-transform-literals" "^7.8.3" "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.0" - "@babel/plugin-transform-modules-commonjs" "^7.9.0" - "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-amd" "^7.9.6" + "@babel/plugin-transform-modules-commonjs" "^7.9.6" + "@babel/plugin-transform-modules-systemjs" "^7.9.6" "@babel/plugin-transform-modules-umd" "^7.9.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" "@babel/plugin-transform-new-target" "^7.8.3" @@ -811,8 +811,8 @@ "@babel/plugin-transform-typeof-symbol" "^7.8.4" "@babel/plugin-transform-unicode-regex" "^7.8.3" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.5" - browserslist "^4.9.1" + "@babel/types" "^7.9.6" + browserslist "^4.11.1" core-js-compat "^3.6.2" invariant "^2.2.2" levenary "^1.1.1" @@ -850,17 +850,17 @@ "@babel/plugin-transform-react-jsx-source" "^7.9.0" "@babel/runtime-corejs3@^7.8.3": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz#26fe4aa77e9f1ecef9b776559bbb8e84d34284b7" - integrity sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz#67aded13fffbbc2cb93247388cf84d77a4be9a71" + integrity sha512-6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA== dependencies: core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" "@babel/runtime@^7.8.4": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" + integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== dependencies: regenerator-runtime "^0.13.4" @@ -873,25 +873,25 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" - integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== +"@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" + integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.5" + "@babel/generator" "^7.9.6" "@babel/helper-function-name" "^7.9.5" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.5" + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" - integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== +"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" + integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== dependencies: "@babel/helper-validator-identifier" "^7.9.5" lodash "^4.17.13" @@ -916,37 +916,32 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/mime-types@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.0.tgz#9ca52cda363f699c69466c2a6ccdaad913ea7a73" - integrity sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM= - "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "13.11.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.1.tgz#49a2a83df9d26daacead30d0ccc8762b128d53c7" - integrity sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g== + version "14.0.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.4.tgz#43a63fc5edce226bed106b31b875165256271107" + integrity sha512-k3NqigXWRzQZVBDS5D1U70A5E8Qk4Kh+Ha/x4M8Bt9pF0X05eggfnC9+63Usc9Q928hRUIpIhTQaXsZwZBl4Ew== "@types/prop-types@*": version "15.7.3" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/react-dom@^16.9.6": - version "16.9.6" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.6.tgz#9e7f83d90566521cc2083be2277c6712dcaf754c" - integrity sha512-S6ihtlPMDotrlCJE9ST1fRmYrQNNwfgL61UB4I1W7M6kPulUKx9fXAleW5zpdIjUQ4fTaaog8uERezjsGUj9HQ== +"@types/react-dom@^16.9.8": + version "16.9.8" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" + integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.9.34": - version "16.9.34" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.34.tgz#f7d5e331c468f53affed17a8a4d488cd44ea9349" - integrity sha512-8AJlYMOfPe1KGLKyHpflCg5z46n0b5DbRfqDksxBLBTUpB75ypDBAO9eCUcjNwE6LCUslwTz00yyG/X9gaVtow== +"@types/react@*", "@types/react@^16.9.35": + version "16.9.35" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.35.tgz#a0830d172e8aadd9bd41709ba2281a3124bbd368" + integrity sha512-q0n0SsWcGc8nDqH2GJfWQWUOmZSJhXV64CjVN5SvcNti3TdEaA3AH0D8DwNmMdzjMAC/78tB8nAZIlV8yTz+zQ== dependencies: "@types/prop-types" "*" csstype "^2.2.0" @@ -1136,15 +1131,15 @@ acorn@^5.0.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.2.1: +acorn@^6.4.1: version "6.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" + integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== after@0.8.2: version "0.8.2" @@ -1167,9 +1162,9 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -1203,11 +1198,6 @@ ansi-regex@^2.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" @@ -1230,7 +1220,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== @@ -1426,10 +1416,10 @@ babel-loader@^8.1.0: pify "^4.0.1" schema-utils "^2.6.5" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" @@ -1471,10 +1461,10 @@ base64-js@^1.0.2: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== base@^0.11.1: version "0.11.2" @@ -1544,17 +1534,22 @@ blob@0.0.5: resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== -bluebird@^3.3.0, bluebird@^3.5.5: +bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.19.0, body-parser@^1.16.1: +bn.js@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" + integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== + +body-parser@1.19.0, body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== @@ -1649,7 +1644,7 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0: +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= @@ -1658,17 +1653,19 @@ browserify-rsa@^4.0.0: randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" + version "4.2.0" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" + integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.2" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" browserify-zlib@^0.2.0: version "0.2.0" @@ -1677,39 +1674,21 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.8.5, browserslist@^4.9.1: - version "4.11.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" - integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== +browserslist@^4.11.1, browserslist@^4.8.5: + version "4.12.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== dependencies: - caniuse-lite "^1.0.30001038" - electron-to-chromium "^1.3.390" + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" node-releases "^1.1.53" pkg-up "^2.0.0" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -1823,17 +1802,17 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001038: - version "1.0.30001042" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001042.tgz#c91ec21ec2d270bd76dbc2ce261260c292b8c93c" - integrity sha512-igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw== +caniuse-lite@^1.0.30001043: + version "1.0.30001062" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001062.tgz#d814b648338504b315222ace6f1a533d9a55e390" + integrity sha512-ei9ZqeOnN7edDrb24QfJ0OZicpEbsWxv7WusOiQGz/f2SfvBgHHbOEwBJ8HKGVSyx8Z6ndPjxzR6m0NQq+0bfw== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0: +chalk@2.4.2, chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1861,6 +1840,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -1885,10 +1872,10 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" - integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== +chokidar@^3.0.0, chokidar@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" + integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -1896,7 +1883,7 @@ chokidar@^3.0.0: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.3.0" + readdirp "~3.4.0" optionalDependencies: fsevents "~2.1.2" @@ -1947,15 +1934,6 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -1965,6 +1943,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -1974,11 +1961,6 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -2011,7 +1993,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@^1.1.0: +colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -2048,7 +2030,7 @@ component-emitter@1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= -component-emitter@^1.2.1: +component-emitter@^1.2.1, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -2098,7 +2080,7 @@ connect-history-api-fallback@^1.6.0: resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== -connect@^3.6.0: +connect@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== @@ -2200,7 +2182,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-hash@^1.1.0, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -2211,7 +2193,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2223,7 +2205,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@6.0.5, cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2243,6 +2225,15 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2282,11 +2273,16 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-format@^2.0.0: +date-format@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== +date-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" + integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2294,14 +2290,14 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" -debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -2337,7 +2333,7 @@ deep-equal@^1.0.0, deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -2478,7 +2474,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-serialize@^2.2.0: +dom-serialize@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= @@ -2521,12 +2517,12 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.390: - version "1.3.412" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.412.tgz#da0475c653b48e5935f300aa9c875377bf8ddcf9" - integrity sha512-4bVdSeJScR8fT7ERveLWbxemY5uXEHVseqMRyORosiKcTUSGtVwBkV8uLjXCqoFLeImA57Z9hbz3TOid01U4Hw== +electron-to-chromium@^1.3.413: + version "1.3.446" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.446.tgz#12c336bc858e04d6b614a488f32f2dd89561601f" + integrity sha512-CLQaFuvkKqR9FD2G3cJrr1fV7DRMXiAKWLP2F8cxtvvtzAS7Tubt0kF47/m+uE61kiT+I7ZEn7HqLnmWdOhmuA== -elliptic@^6.0.0: +elliptic@^6.0.0, elliptic@^6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== @@ -2587,27 +2583,27 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== +engine.io-client@~3.4.0: + version "3.4.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.2.tgz#4fb2ef2b1fe1d3aa1c621c6a8d87f1fc55426b50" + integrity sha512-AWjc1Xg06a6UPFOBAzJf48W1UR/qKYmv/ubgSCumo9GXgvL/xGIvo05dXoBL+2NTLMipDI7in8xK61C17L25xg== dependencies: - component-emitter "1.2.1" + component-emitter "~1.3.0" component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" has-cors "1.1.0" indexof "0.0.1" parseqs "0.0.5" parseuri "0.0.5" - ws "~3.3.1" + ws "~6.1.0" xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== +engine.io-parser@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" + integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== dependencies: after "0.8.2" arraybuffer.slice "~0.0.7" @@ -2615,17 +2611,17 @@ engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: blob "0.0.5" has-binary2 "~1.0.2" -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== +engine.io@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.1.tgz#a61cbc13fa0cb27d9453fd079a29ee980564b069" + integrity sha512-8MfIfF1/IIfxuc2gv5K+XlFZczw/BpTvqBdl0E2fBLkYQp4miv4LuDTVtYt4yMyaIFLEr4vtaSgV4mjvll8Crw== dependencies: accepts "~1.3.4" - base64id "1.0.0" + base64id "2.0.0" cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "^7.1.2" enhanced-resolve@4.1.0: version "4.1.0" @@ -2698,10 +2694,10 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-plugin-react@^7.19.0: - version "7.19.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" - integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== +eslint-plugin-react@^7.20.0: + version "7.20.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3" + integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA== dependencies: array-includes "^3.1.1" doctrine "^2.1.0" @@ -2712,7 +2708,6 @@ eslint-plugin-react@^7.19.0: object.values "^1.1.1" prop-types "^15.7.2" resolve "^1.15.1" - semver "^6.3.0" string.prototype.matchall "^4.0.2" xregexp "^4.3.0" @@ -2732,10 +2727,10 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== dependencies: eslint-visitor-keys "^1.1.0" @@ -2744,22 +2739,22 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.0.0.tgz#c35dfd04a4372110bd78c69a8d79864273919a08" + integrity sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" - eslint-utils "^1.4.3" + eslint-utils "^2.0.0" eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + espree "^7.0.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -2772,17 +2767,16 @@ eslint@^6.8.0: is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" + levn "^0.4.1" lodash "^4.17.14" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -2797,10 +2791,10 @@ espower-location-detector@^1.0.0: source-map "^0.5.0" xtend "^4.0.0" -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" + integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== dependencies: acorn "^7.1.1" acorn-jsx "^5.2.0" @@ -2818,7 +2812,7 @@ espurify@^1.6.0: dependencies: core-js "^2.0.0" -esquery@^1.0.1: +esquery@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -2853,9 +2847,9 @@ etag@~1.8.1: integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eventemitter3@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== events@^3.0.0: version "3.1.0" @@ -3030,7 +3024,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -3138,6 +3132,14 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + findup-sync@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -3157,15 +3159,15 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" -flatted@^2.0.0: +flatted@^2.0.0, flatted@^2.0.1, flatted@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@^0.123.0: - version "0.123.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.123.0.tgz#7ba61a0b8775928cf4943ccf78eed2b1b05f7b3a" - integrity sha512-Ylcf8YDIM/KrqtxkPuq+f8O+6sdYA2Nuz5f+sWHlp539DatZz3YMcsO1EiXaf1C11HJgpT/3YGYe7xZ9/UZmvQ== +flow-bin@^0.125.1: + version "0.125.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.125.1.tgz#7edbc71e7dc39ddef18086ef75c714bbf1c5917f" + integrity sha512-jEury9NTXylxQEOAXLWEE945BjBwYcMwwKVnb+5XORNwMQE7i5hQYF0ysYfsaaYOa7rW/U16rHBfwLuaZfWV7A== flush-write-stream@^1.0.0: version "1.1.1" @@ -3240,12 +3242,12 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: - graceful-fs "^4.1.2" + graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" @@ -3270,17 +3272,17 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" fsevents@~2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== function-bind@^1.1.1: version "1.1.1" @@ -3297,11 +3299,6 @@ gensync@^1.0.0-beta.1: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -3348,7 +3345,7 @@ glob-parent@^5.0.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -3419,10 +3416,10 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== handle-thing@^2.0.0: version "2.0.1" @@ -3515,12 +3512,13 @@ has@^1.0.3: function-bind "^1.1.1" hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" @@ -3564,7 +3562,7 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^1.2.1: +html-entities@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== @@ -3621,10 +3619,10 @@ http-proxy-middleware@0.19.1: lodash "^4.17.11" micromatch "^3.1.10" -http-proxy@^1.13.0, http-proxy@^1.17.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== +http-proxy@^1.17.0, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" follow-redirects "^1.0.0" @@ -3886,6 +3884,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-docker@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -3903,13 +3906,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" @@ -3972,11 +3968,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - is-regex@^1.0.4, is-regex@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" @@ -4022,9 +4013,11 @@ is-wsl@^1.1.0: integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= is-wsl@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" @@ -4036,12 +4029,10 @@ isarray@2.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= -isbinaryfile@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" +isbinaryfile@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" + integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== isexe@^2.0.0: version "2.0.0" @@ -4234,37 +4225,35 @@ karma-webpack@^4.0.2: source-map "^0.7.3" webpack-dev-middleware "^3.7.0" -karma@^4.0.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" - integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== +karma@^5.0.9: + version "5.0.9" + resolved "https://registry.yarnpkg.com/karma/-/karma-5.0.9.tgz#11a119b0c763a806fdc471b40c594a2240b5ca13" + integrity sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg== dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" + body-parser "^1.19.0" braces "^3.0.2" chokidar "^3.0.0" - colors "^1.1.0" - connect "^3.6.0" + colors "^1.4.0" + connect "^3.7.0" di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.14" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" + dom-serialize "^2.2.1" + flatted "^2.0.2" + glob "^7.1.6" + graceful-fs "^4.2.4" + http-proxy "^1.18.1" + isbinaryfile "^4.0.6" + lodash "^4.17.15" + log4js "^6.2.1" + mime "^2.4.5" + minimatch "^3.0.4" + qjobs "^1.2.0" + range-parser "^1.2.1" + rimraf "^3.0.2" + socket.io "^2.3.0" source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" + tmp "0.2.1" + ua-parser-js "0.7.21" + yargs "^15.3.1" kew@^0.7.0: version "0.7.0" @@ -4326,13 +4315,13 @@ levenary@^1.1.1: dependencies: leven "^3.1.0" -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + prelude-ls "^1.2.1" + type-check "~0.4.0" loader-runner@^2.4.0: version "2.4.0" @@ -4373,23 +4362,30 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.6.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== +log4js@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.2.1.tgz#fc23a3bf287f40f5b48259958e5e0ed30d558eeb" + integrity sha512-7n+Oqxxz7VcQJhIlqhcYZBTpbcQ7XsR0MUIfJkx/n3VUjkAS4iUr+4UJlhxf28RvP9PMGQXbgTUhLApnu0XXgA== dependencies: - date-format "^2.0.0" + date-format "^3.0.0" debug "^4.1.1" - flatted "^2.0.0" + flatted "^2.0.1" rfdc "^1.1.4" - streamroller "^1.0.6" + streamroller "^2.2.4" -loglevel@^1.6.6: +loglevel@^1.6.8: version "1.6.8" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== @@ -4401,7 +4397,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lru-cache@4.1.x, lru-cache@^4.0.1: +lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -4519,27 +4515,27 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.43.0, "mime-db@>= 1.43.0 < 2": - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== -mime-types@^2.1.12, mime-types@^2.1.25, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.26" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: - mime-db "1.43.0" + mime-db "1.44.0" mime@1.6.0, mime@^1.2.11: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.0.3, mime@^2.3.1, mime@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== +mime@^2.0.3, mime@^2.4.4, mime@^2.4.5: + version "2.4.5" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.5.tgz#d8de2ecb92982dedbb6541c9b6841d7f218ea009" + integrity sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w== mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" @@ -4556,14 +4552,14 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5, minimist@~0.0.1: +minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -4593,9 +4589,9 @@ mixin-deep@^1.2.0: is-extendable "^1.0.1" mkdirp-classic@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" - integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: version "0.5.5" @@ -4650,9 +4646,9 @@ mute-stream@0.0.8: integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== nanomatch@^1.2.9: version "1.2.13" @@ -4726,9 +4722,9 @@ node-libs-browser@^2.2.1: vm-browserify "^1.0.1" node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== + version "1.1.56" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.56.tgz#bc054a417d316e3adac90eafb7e1932802f28705" + integrity sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw== normalize-path@^2.1.1: version "2.1.1" @@ -4749,11 +4745,6 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -4888,25 +4879,17 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" original@^1.0.0: version "1.0.2" @@ -4920,7 +4903,7 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-locale@^3.0.0, os-locale@^3.1.0: +os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== @@ -4961,7 +4944,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -4982,6 +4965,13 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -5025,7 +5015,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0: +parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.5" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== @@ -5081,6 +5071,11 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -5096,6 +5091,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -5142,7 +5142,7 @@ phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: request-progress "^2.0.1" which "^1.2.10" -picomatch@^2.0.4, picomatch@^2.0.7: +picomatch@^2.0.4, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -5183,10 +5183,10 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -portfinder@^1.0.25: - version "1.0.25" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" - integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== +portfinder@^1.0.26: + version "1.0.26" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" + integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== dependencies: async "^2.6.2" debug "^3.1.1" @@ -5305,10 +5305,10 @@ pre-commit@^1.2.2: spawn-sync "^1.0.15" which "1.2.x" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== private@^0.1.8: version "0.1.8" @@ -5429,17 +5429,15 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.0.0.tgz#844c714d074c7ea63cfa3744501c1ab6ea60722e" - integrity sha512-ArmIS8w+XhL4KGP05kxMousA9SFxmeirMkNNcVe5LjK4iGCbZ8qKnG4byuXMru7Ty7a9QwiMUIf80X+zmJuf2A== +puppeteer@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.1.0.tgz#d44efdc5410809025f38bca2de106c3ae5c85a52" + integrity sha512-jLa9sqdVx0tPnr2FcwAq+8DSjGhSM4YpkwOf3JE22Ycyqm71SW7B5uGfTyMGFoLCmbCozbLZclCjasPb0flTRw== dependencies: - "@types/mime-types" "^2.1.0" debug "^4.1.0" extract-zip "^2.0.0" https-proxy-agent "^4.0.0" mime "^2.0.3" - mime-types "^2.1.25" progress "^2.0.1" proxy-from-env "^1.0.0" rimraf "^3.0.2" @@ -5447,7 +5445,7 @@ puppeteer@^3.0.0: unbzip2-stream "^1.3.3" ws "^7.2.3" -qjobs@^1.1.4: +qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== @@ -5492,7 +5490,7 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.1: +range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -5517,10 +5515,10 @@ react-dom@^16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-frame-component@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.1.tgz#ea8f7c518ef6b5ad72146dd1f648752369826894" - integrity sha512-NfJp90AvYA1R6+uSYafQ+n+UM2HjHqi4WGHeprVXa6quU9d8o6ZFRzQ36uemY82dlkZFzf2jigFx6E4UzNFajA== +react-frame-component@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.2.tgz#c88fcc1e73fbe83eea6c82d95d66eefe44cd1ea4" + integrity sha512-gWTtpOoi8Mgxayj0iWLL3SXRu2jW4eW4oim6B/FycaOH9HHIsCTPulC9u7CZ2BwY0CtqA+v8FsINp6qPuaN6qQ== react-is@^16.8.1, react-is@^16.8.6: version "16.13.1" @@ -5559,7 +5557,7 @@ react@^16.13.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -5577,12 +5575,12 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" - integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== dependencies: - picomatch "^2.0.7" + picomatch "^2.2.1" regenerate-unicode-properties@^8.2.0: version "8.2.0" @@ -5625,10 +5623,10 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== regexpu-core@^4.7.0: version "4.7.0" @@ -5707,11 +5705,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -5753,9 +5746,9 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.12.0, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.3.3: - version "1.16.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.0.tgz#063dc704fa3413e13ac1d0d1756a7cbfe95dd1a7" - integrity sha512-LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA== + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" @@ -5789,14 +5782,14 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rimraf@^3.0.2: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -5812,11 +5805,9 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" run-async@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== - dependencies: - is-promise "^2.1.0" + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" @@ -5837,10 +5828,10 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex@^1.1.0: version "1.1.0" @@ -5901,12 +5892,12 @@ semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.1.2, semver@^6.3.0: +semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: +semver@^7.2.1, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== @@ -6010,11 +6001,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + side-channel@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" @@ -6077,46 +6080,55 @@ socket.io-adapter@~1.1.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== +socket.io-client@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== dependencies: backo2 "1.0.2" base64-arraybuffer "0.1.5" component-bind "1.0.0" component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" + debug "~4.1.0" + engine.io-client "~3.4.0" has-binary2 "~1.0.2" has-cors "1.1.0" indexof "0.0.1" object-component "0.0.3" parseqs "0.0.5" parseuri "0.0.5" - socket.io-parser "~3.2.0" + socket.io-parser "~3.3.0" to-array "0.1.4" -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== dependencies: component-emitter "1.2.1" debug "~3.1.0" isarray "2.0.1" -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== +socket.io-parser@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== dependencies: - debug "~3.1.0" - engine.io "~3.2.0" + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" + integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== + dependencies: + debug "~4.1.0" + engine.io "~3.4.0" has-binary2 "~1.0.2" socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" + socket.io-client "2.3.0" + socket.io-parser "~3.4.0" sockjs-client@1.4.0: version "1.4.0" @@ -6130,13 +6142,14 @@ sockjs-client@1.4.0: json3 "^3.3.2" url-parse "^1.4.3" -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== dependencies: faye-websocket "^0.10.0" - uuid "^3.0.1" + uuid "^3.4.0" + websocket-driver "0.6.5" source-list-map@^2.0.0: version "2.0.1" @@ -6155,9 +6168,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@~0.5.12: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -6202,7 +6215,7 @@ spdy-transport@^3.0.0: readable-stream "^3.0.6" wbuf "^1.7.3" -spdy@^4.0.1: +spdy@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== @@ -6302,33 +6315,14 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== - dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== +streamroller@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" + integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" + date-format "^2.1.0" + debug "^4.1.1" + fs-extra "^8.1.0" string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" @@ -6339,7 +6333,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -6424,20 +6418,13 @@ strip-ansi@^0.3.0: dependencies: ansi-regex "^0.2.1" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: +strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -6457,7 +6444,7 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-json-comments@^3.0.1: +strip-json-comments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== @@ -6504,9 +6491,9 @@ tapable@^1.0.0, tapable@^1.1.3: integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar-fs@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" - integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5" + integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg== dependencies: chownr "^1.1.1" mkdirp-classic "^0.5.2" @@ -6540,9 +6527,9 @@ terser-webpack-plugin@^1.4.3: worker-farm "^1.7.0" terser@^4.1.2: - version "4.6.11" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.11.tgz#12ff99fdd62a26de2a82f508515407eb6ccd8a9f" - integrity sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA== + version "4.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006" + integrity sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -6583,7 +6570,14 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: +tmp@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -6656,9 +6650,9 @@ traverse@^0.6.6: integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tty-browserify@0.0.0: version "0.0.0" @@ -6677,12 +6671,12 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" type-fest@^0.11.0: version "0.11.0" @@ -6712,20 +6706,20 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.8.3: - version "3.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" - integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== +typescript@^3.9.3: + version "3.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a" + integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== +ua-parser-js@0.7.21: + version "0.7.21" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== unbzip2-stream@^1.3.3: - version "1.4.1" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.1.tgz#151b104af853df3efdaa135d8b1eca850a44b426" - integrity sha512-sgDYfSDPMsA4Hr2/w7vOlrJBlwzmyakk1+hW8ObLvxSp0LA36LcL2XItGvOT3OSblohSdevMuT8FQjLsqyy4sA== + version "1.4.2" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.2.tgz#84eb9e783b186d8fb397515fbb656f312f1a7dbf" + integrity sha512-pZMVAofMrrHX6Ik39hCk470kulCbmZ2SWfQLPmTWqfJV/oUm0gn1CblvHdUu4+54Je6Jq34x8kY6XjTy6dMkOg== dependencies: buffer "^5.2.1" through "^2.3.8" @@ -6842,14 +6836,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -6874,7 +6860,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.0.1, uuid@^3.3.2: +uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -6913,14 +6899,23 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" - integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== dependencies: chokidar "^2.1.8" + +watchpack@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" + integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== + dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.0" + watchpack-chokidar2 "^2.0.0" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -6957,10 +6952,10 @@ webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.10.3: - version "3.10.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" - integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== +webpack-dev-server@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -6970,31 +6965,31 @@ webpack-dev-server@^3.10.3: debug "^4.1.1" del "^4.1.1" express "^4.17.1" - html-entities "^1.2.1" + html-entities "^1.3.1" http-proxy-middleware "0.19.1" import-local "^2.0.0" internal-ip "^4.3.0" ip "^1.1.5" is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.6" + loglevel "^1.6.8" opn "^5.5.0" p-retry "^3.0.1" - portfinder "^1.0.25" + portfinder "^1.0.26" schema-utils "^1.0.0" selfsigned "^1.10.7" semver "^6.3.0" serve-index "^1.9.1" - sockjs "0.3.19" + sockjs "0.3.20" sockjs-client "1.4.0" - spdy "^4.0.1" + spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" url "^0.11.0" webpack-dev-middleware "^3.7.2" webpack-log "^2.0.0" ws "^6.2.1" - yargs "12.0.5" + yargs "^13.3.2" webpack-log@^2.0.0: version "2.0.0" @@ -7012,16 +7007,16 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.42.1: - version "4.42.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" - integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== +webpack@^4.43.0: + version "4.43.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" + integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" "@webassemblyjs/wasm-edit" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.2.1" + acorn "^6.4.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" @@ -7038,9 +7033,16 @@ webpack@^4.42.1: schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" + watchpack "^1.6.1" webpack-sources "^1.4.1" +websocket-driver@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= + dependencies: + websocket-extensions ">=0.1.1" + websocket-driver@>=0.5.1: version "0.7.3" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" @@ -7074,16 +7076,18 @@ which@^1.2.1, which@^1.2.10, which@^1.2.14, which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" -word-wrap@~1.2.3: +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -7091,14 +7095,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -7108,6 +7104,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -7127,19 +7132,17 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== +ws@^7.1.2, ws@^7.2.3: + version "7.3.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" + integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== dependencies: async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" xmlhttprequest-ssl@~1.5.4: version "1.5.5" @@ -7158,7 +7161,7 @@ xtend@^4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: +y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== @@ -7173,15 +7176,7 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.1.0: +yargs-parser@^13.1.0, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -7189,23 +7184,13 @@ yargs-parser@^13.1.0: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== +yargs-parser@^18.1.1: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: - cliui "^4.0.0" + camelcase "^5.0.0" decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" yargs@13.2.4: version "13.2.4" @@ -7224,6 +7209,39 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.3.1: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" + yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 13c96c87589ccdafd294c3ec032d8301143d3323 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2020 14:08:40 -0400 Subject: [PATCH 371/412] build(deps): bump websocket-extensions from 0.1.3 to 0.1.4 (#493) Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. - [Release notes](https://github.com/faye/websocket-extensions-node/releases) - [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 55663259..4b46b620 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7053,9 +7053,9 @@ websocket-driver@>=0.5.1: websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== which-module@^2.0.0: version "2.0.0" From 6de32a1c0be672d8e70d9bb69f238126b200b9a6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 5 Jun 2020 14:09:50 -0400 Subject: [PATCH 372/412] feat(typescript): add nodeRef to TS definitions (#494) Addendum to #478 --- typings/index.d.ts | 1 + typings/test.tsx | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index e5745228..ad7f22ba 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -48,6 +48,7 @@ declare module 'react-draggable' { offsetParent: HTMLElement, grid: [number, number], handle: string, + nodeRef?: React.RefObject, onStart: DraggableEventHandler, onDrag: DraggableEventHandler, onStop: DraggableEventHandler, diff --git a/typings/test.tsx b/typings/test.tsx index 17377dcc..87562d49 100644 --- a/typings/test.tsx +++ b/typings/test.tsx @@ -9,6 +9,7 @@ function handleDrag() {} function handleStop() {} function handleMouseDown() {} +const nodeRef = React.createRef(); ReactDOM.render( -
+
@@ -38,6 +40,7 @@ ReactDOM.render( root ); +const nodeRefCore = React.createRef(); ReactDOM.render( -
+
From 9c5e8c3474f1ecce6f400c2e6656d44ecf4aa3df Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 8 Jun 2020 11:42:53 -0400 Subject: [PATCH 373/412] release v4.4.3 --- CHANGELOG.md | 4 ++++ package.json | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f48385fa..c7c2d394 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 4.4.3 (June 8, 2020) + +- Add `nodeRef` to TypeScript definitions + ### 4.4.2 (May 14, 2020) - Fix: Remove "module" from package.json (it is no longer being built) diff --git a/package.json b/package.json index 542d6f3b..1cd8f89c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.4.2", + "version": "4.4.3", "description": "React draggable component", "main": "build/cjs/cjs.js", "scripts": { @@ -91,4 +91,4 @@ "classnames": "^2.2.5", "prop-types": "^15.6.0" } -} +} \ No newline at end of file From a5e7b9f33c47c35f93cabfb24a1417629235c01d Mon Sep 17 00:00:00 2001 From: Christian Nikkanen Date: Mon, 8 Jun 2020 18:53:21 +0300 Subject: [PATCH 374/412] Add rem example (#480) (#487) --- example/example.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++ example/index.html | 10 ++++++++++ 2 files changed, 60 insertions(+) diff --git a/example/example.js b/example/example.js index a138b4d0..70dd579d 100644 --- a/example/example.js +++ b/example/example.js @@ -141,6 +141,16 @@ class App extends React.Component { I already have an absolute position.
+ + +
+ I use rem instead of px for my transforms. I also have absolute positioning. + +

+ I depend on a CSS hack to avoid double absolute positioning. +
+
+
{"I have a default position of {x: 25, y: 25}, so I'm slightly offset."} @@ -181,4 +191,44 @@ class App extends React.Component { } } +class RemWrapper extends React.Component { + // PropTypes is not available in this environment, but here they are. + // static propTypes = { + // style: PropTypes.shape({ + // transform: PropTypes.string.isRequired + // }), + // children: PropTypes.node.isRequired, + // remBaseline: PropTypes.number, + // } + + translateTransformToRem(transform, remBaseline = 16) { + const convertedValues = transform.replace('translate(', '').replace(')', '') + .split(',') + .map(px => px.replace('px', '')) + .map(px => parseInt(px, 10) / remBaseline) + .map(x => `${x}rem`) + const [x, y] = convertedValues + + return `translate(${x}, ${y})` + } + + render() { + const { children, remBaseline = 16, style } = this.props + const child = React.Children.only(children) + + const editedStyle = { + ...child.props.style, + ...style, + transform: this.translateTransformToRem(style.transform, remBaseline), + } + + return React.cloneElement(child, { + ...child.props, + ...this.props, + style: editedStyle + }) + } +} + + ReactDOM.render(, document.getElementById('container')); diff --git a/example/index.html b/example/index.html index 5af754a0..cb8a3f7f 100644 --- a/example/index.html +++ b/example/index.html @@ -51,6 +51,16 @@ padding: 10px; float: left; } + + + /* + * RemWrapper needs to take it's styles from this element, + * and this element can't have an absolute position after it's kicked in. + * AFAIK it's not possible to do this directly in the RemWrapper component. + */ + .rem-position-fix { + position: static !important; + } From a73a1c0346963bdccf9593e91a39759f8f60ab7c Mon Sep 17 00:00:00 2001 From: Rohit Garg <42495927+gargroh@users.noreply.github.com> Date: Sat, 4 Jul 2020 01:39:41 +0530 Subject: [PATCH 375/412] typo correction (#501) may be this was not caught due to x === y for test cases --- specs/draggable.spec.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index a7a1f104..c0cd31e8 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -957,7 +957,7 @@ function mouseMove(x, y, node) { function simulateMovementFromTo(drag, fromX, fromY, toX, toY) { const node = ReactDOM.findDOMNode(drag); - TestUtils.Simulate.mouseDown(node, {clientX: fromX, clientY: fromX}); + TestUtils.Simulate.mouseDown(node, {clientX: fromX, clientY: fromY}); mouseMove(toX, toY, node); TestUtils.Simulate.mouseUp(node); } From ce3f154166df3f8b2813b48c02a9d769d196b508 Mon Sep 17 00:00:00 2001 From: John Watson Date: Mon, 3 Aug 2020 15:54:29 -0700 Subject: [PATCH 376/412] Update README.md (#511) Fix spelling mistake `postiion => position` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ef9ae29..ba5db234 100644 --- a/README.md +++ b/README.md @@ -253,7 +253,7 @@ position: {x: number, y: number} // A position offset to start with. Useful for giving an initial position // to the element. Differs from `defaultPosition` in that it does not -// affect the postiion returned in draggable callbacks, and in that it +// affect the position returned in draggable callbacks, and in that it // accepts strings, like `{x: '10%', y: '10%'}`. positionOffset: {x: number | string, y: number | string}, From b14212150f26025711529c0a68477a6605c8bc06 Mon Sep 17 00:00:00 2001 From: Tanate Meaksriswan Date: Sat, 10 Oct 2020 21:08:52 +0700 Subject: [PATCH 377/412] [chore] Add live demo preview (#526) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index ba5db234..df14cd0d 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ [![gzip size](http://img.badgesize.io/https://npmcdn.com/react-draggable/build/web/react-draggable.min.js?compression=gzip)]() [![version](https://img.shields.io/npm/v/react-draggable.svg)]() +

+ +

+ A simple component for making elements draggable. ```js From 51f554816524b73b722d7aa021c21cdae6c899cd Mon Sep 17 00:00:00 2001 From: Naser Mohd Baig <56202963+naser-baig-au4@users.noreply.github.com> Date: Sat, 10 Oct 2020 22:21:31 +0530 Subject: [PATCH 378/412] Adding `react` and `react-dom` as dependencies for Yarn PnP (#525) * Adding `react` and `react-dom` as dependencies for Yarn PnP Yarn V2 refuses access to packages which are not listed as a dependency. This should help fix it. Details: https://yarnpkg.com/advanced/rulebook#packages-should-only-ever-require-what-they-formally-list-in-their-dependencies * Update package.json * Widen react peerDependency range Co-authored-by: Samuel Reed --- package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 1cd8f89c..e5cf6568 100644 --- a/package.json +++ b/package.json @@ -90,5 +90,9 @@ "dependencies": { "classnames": "^2.2.5", "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" } -} \ No newline at end of file +} From 832ded0021c266f0c2fa625ce85f27b8979f4e00 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 3 Mar 2021 12:35:57 -0500 Subject: [PATCH 379/412] docs(README): update links --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index df14cd0d..772ff368 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # React-Draggable -[![TravisCI Build Status](https://api.travis-ci.org/STRML/react-draggable.svg?branch=master)](https://travis-ci.org/strml/react-draggable) -[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true)](https://ci.appveyor.com/project/strml/react-draggable) +[![TravisCI Build Status](https://api.travis-ci.org/react-grid-layout/react-draggable.svg?branch=master)](https://travis-ci.org/react-grid-layout/react-draggable) +[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true)](https://ci.appveyor.com/project/react-grid-layout/react-draggable) [![npm downloads](https://img.shields.io/npm/dt/react-draggable.svg?maxAge=2592000)](http://npmjs.com/package/react-draggable) [![gzip size](http://img.badgesize.io/https://npmcdn.com/react-draggable/build/web/react-draggable.min.js?compression=gzip)]() [![version](https://img.shields.io/npm/v/react-draggable.svg)]() @@ -18,7 +18,7 @@ A simple component for making elements draggable. ``` -- [Demo](http://strml.github.io/react-draggable/example/) +- [Demo](http://react-grid-layout.github.io/react-draggable/example/) - [Changelog](CHANGELOG.md) @@ -87,7 +87,7 @@ an intermediate wrapper (`...`) in this case ### Draggable Usage -View the [Demo](http://strml.github.io/react-draggable/example/) and its +View the [Demo](http://react-grid-layout.github.io/react-draggable/example/) and its [source](/example/example.js) for more. ```js @@ -297,8 +297,8 @@ like a completely static component. For users that require absolute control, a `` element is available. This is useful as an abstraction over touch and mouse events, but with full control. `` has no internal state. -See [React-Resizable](https://github.com/STRML/react-resizable) and -[React-Grid-Layout](https://github.com/STRML/react-grid-layout) for some usage examples. +See [React-Resizable](https://github.com/react-grid-layout/react-resizable) and +[React-Grid-Layout](https://github.com/react-grid-layout/react-grid-layout) for some usage examples. `` is a useful building block for other libraries that simply want to abstract browser-specific quirks and receive callbacks when a user attempts to move an element. It does not set styles or transforms From 2526e68e7aa51f36de603c25a6701cfa3e8e9e6b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 5 Mar 2021 12:53:04 -0500 Subject: [PATCH 380/412] chore(deps): upgrade devDeps --- yarn.lock | 3586 ++++++++++++++++++++++++++--------------------------- 1 file changed, 1751 insertions(+), 1835 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4b46b620..68498d37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,833 +3,876 @@ "@babel/cli@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.8.4.tgz#505fb053721a98777b2b175323ea4f090b7d3c1c" - integrity sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.13.0.tgz#48e77614e897615ca299bece587b68a70723ff4c" + integrity sha512-y5AohgeVhU+wO5kU1WGMLdocFj83xCxVjsVFa2ilII8NEwmBZvx7Ambq621FbFIK68loYJ9p43nfoi6es+rzSA== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.13" + lodash "^4.17.19" make-dir "^2.1.0" slash "^2.0.0" source-map "^0.5.0" optionalDependencies: - chokidar "^2.1.8" + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents" + chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: - "@babel/highlight" "^7.8.3" + "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" - integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== dependencies: - browserslist "^4.11.1" - invariant "^2.2.4" - semver "^5.5.0" + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.8.tgz#5b783b9808f15cef71547f1b691f34f8ff6003a6" + integrity sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog== "@babel/core@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" - integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.6" - "@babel/parser" "^7.9.6" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.8.tgz#c191d9c5871788a591d69ea1dc03e5843a3680fb" + integrity sha512-oYapIySGw1zGhEFRd6lzWNLWFX2s5dA/jm+Pw/+59ZdXtjyIuwlXbrId22Md0rgZVop+aVoqow2riXhBLNyuQg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.0" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helpers" "^7.13.0" + "@babel/parser" "^7.13.4" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" convert-source-map "^1.7.0" debug "^4.1.0" - gensync "^1.0.0-beta.1" + gensync "^1.0.0-beta.2" json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" + lodash "^4.17.19" + semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.8.3", "@babel/generator@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" - integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== +"@babel/generator@^7.0.0", "@babel/generator@^7.12.13", "@babel/generator@^7.13.0": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== dependencies: - "@babel/types" "^7.9.6" + "@babel/types" "^7.13.0" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-builder-react-jsx-experimental@^7.9.0": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz#0b4b3e04e6123f03b404ca4dfd6528fe6bb92fe3" - integrity sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-module-imports" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-builder-react-jsx@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" - integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/types" "^7.9.0" - -"@babel/helper-compilation-targets@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a" - integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw== - dependencies: - "@babel/compat-data" "^7.9.6" - browserslist "^4.11.1" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.8.3": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz#965c8b0a9f051801fd9d3b372ca0ccf200a90897" - integrity sha512-6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow== - dependencies: - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.9.6" - "@babel/helper-split-export-declaration" "^7.8.3" - -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== +"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" + "@babel/types" "^7.12.13" -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== - dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== dependencies: - "@babel/types" "^7.8.3" + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz#02bdb22783439afb11b2f009814bdd88384bd468" + integrity sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A== dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6", "@babel/helper-replace-supers@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" - integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== + "@babel/compat-data" "^7.13.8" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== +"@babel/helper-create-class-features-plugin@^7.13.0": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz#0367bd0a7505156ce018ca464f7ac91ba58c1a04" + integrity sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w== dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" -"@babel/helpers@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" - integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" + "@babel/helper-annotate-as-pure" "^7.12.13" + regexpu-core "^4.7.1" -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== +"@babel/helper-define-polyfill-provider@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e" + integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== dependencies: - "@babel/helper-validator-identifier" "^7.9.0" + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" + integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== + dependencies: + "@babel/types" "^7.13.0" + +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-hoist-variables@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" + integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== + dependencies: + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-member-expression-to-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz#6aa4bb678e0f8c22f58cdb79451d30494461b091" + integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== + dependencies: + "@babel/types" "^7.13.0" + +"@babel/helper-module-imports@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" + integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-module-transforms@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" + integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + +"@babel/helper-remap-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" + integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz#6034b7b51943094cb41627848cb219cb02be1d24" + integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-simple-access@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" + integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + +"@babel/helper-wrap-function@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" + integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helpers@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.0.tgz#7647ae57377b4f0408bf4f8a7af01c42e41badc0" + integrity sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481" + integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" - integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== +"@babel/parser@^7.0.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.4", "@babel/parser@^7.7.0": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" + integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== + +"@babel/plugin-proposal-async-generator-functions@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" + integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" +"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-proposal-dynamic-import@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" + integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" + integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" + integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" + integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" + integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.13.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" + integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz#e39df93efe7e7e621841babc197982e140e90756" + integrity sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-class-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" - integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" - integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.9.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-dynamic-import@^7.8.0": +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-flow@^7.8.3": +"@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz#f2c883bd61a6316f2c89380ae5122f923ba4527f" - integrity sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg== + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.8.0": +"@babel/plugin-syntax-flow@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz#5df9962503c0a9c918381c929d51d4d6949e7e86" + integrity sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" - integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== +"@babel/plugin-syntax-jsx@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" + integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0": +"@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== +"@babel/plugin-syntax-top-level-await@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== +"@babel/plugin-transform-arrow-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" + integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== +"@babel/plugin-transform-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" + integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== +"@babel/plugin-transform-block-scoped-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== +"@babel/plugin-transform-block-scoping@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" + integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-classes@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" - integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== +"@babel/plugin-transform-classes@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" + integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== +"@babel/plugin-transform-computed-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" + integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" - integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== +"@babel/plugin-transform-destructuring@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" + integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== +"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== +"@babel/plugin-transform-duplicate-keys@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== +"@babel/plugin-transform-exponentiation-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-flow-comments@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.8.3.tgz#0a7e6c49224ac24271e4da25774da0600605ef2c" - integrity sha512-SEmbGPsaUig0x3QkB/Nai3Snk1sRxODBN2EGjdQqgBb5TMcbEejV2TtMGi2XiLmw9Cy/BvJX7CAnfJMctuyglg== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.12.13.tgz#b6f0de89ac4955572913f4af82f6b8ddbff38bf1" + integrity sha512-o4Z7Mw9KvrfAxBwSr+Ia+E0+LLb6ZzDXQTsJb628ejXuvvNoCDyu3FLBcz2/W8B7q/MOzm6d6pbNM6ur/aegMQ== dependencies: - "@babel/generator" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-flow" "^7.8.3" + "@babel/generator" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-flow" "^7.12.13" -"@babel/plugin-transform-flow-strip-types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" - integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== +"@babel/plugin-transform-flow-strip-types@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz#58177a48c209971e8234e99906cb6bd1122addd3" + integrity sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-flow" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-flow" "^7.12.13" -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== +"@babel/plugin-transform-for-of@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" + integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== +"@babel/plugin-transform-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== +"@babel/plugin-transform-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== +"@babel/plugin-transform-member-expression-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-amd@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e" - integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw== +"@babel/plugin-transform-modules-amd@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" + integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" - integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ== +"@babel/plugin-transform-modules-commonjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" + integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4" - integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg== +"@babel/plugin-transform-modules-systemjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" + integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-hoist-variables" "^7.13.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== +"@babel/plugin-transform-modules-umd@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" + integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== +"@babel/plugin-transform-new-target@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== +"@babel/plugin-transform-object-super@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-parameters@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" - integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== +"@babel/plugin-transform-parameters@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" + integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== +"@babel/plugin-transform-property-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-react-display-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" - integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== +"@babel/plugin-transform-react-display-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" + integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-react-jsx-development@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz#3c2a130727caf00c2a293f0aed24520825dbf754" - integrity sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw== +"@babel/plugin-transform-react-jsx-development@^7.12.12": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" + integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/plugin-transform-react-jsx" "^7.12.17" -"@babel/plugin-transform-react-jsx-self@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b" - integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ== +"@babel/plugin-transform-react-jsx@^7.12.13", "@babel/plugin-transform-react-jsx@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz#dd2c1299f5e26de584939892de3cfc1807a38f24" + integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/types" "^7.12.17" -"@babel/plugin-transform-react-jsx-source@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" - integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== +"@babel/plugin-transform-react-pure-annotations@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" + integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-jsx@^7.9.4": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" - integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== +"@babel/plugin-transform-regenerator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" + integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== dependencies: - "@babel/helper-builder-react-jsx" "^7.9.0" - "@babel/helper-builder-react-jsx-experimental" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + regenerator-transform "^0.14.2" -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== +"@babel/plugin-transform-reserved-words@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== dependencies: - regenerator-transform "^0.14.2" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== +"@babel/plugin-transform-shorthand-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== +"@babel/plugin-transform-spread@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" + integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== +"@babel/plugin-transform-sticky-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== +"@babel/plugin-transform-template-literals@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" + integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== +"@babel/plugin-transform-typeof-symbol@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== +"@babel/plugin-transform-unicode-escapes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== +"@babel/plugin-transform-unicode-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/preset-env@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6" - integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ== - dependencies: - "@babel/compat-data" "^7.9.6" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.6" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.5" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.9.5" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.6" - "@babel/plugin-transform-modules-commonjs" "^7.9.6" - "@babel/plugin-transform-modules-systemjs" "^7.9.6" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.9.5" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.6" - browserslist "^4.11.1" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.9.tgz#3ee5f233316b10d066d7f379c6d1e13a96853654" + integrity sha512-mcsHUlh2rIhViqMG823JpscLMesRt3QbMsv1+jhopXEb3W2wXvQ9QoiOlZI9ZbR3XqPtaFpZwEZKYqGJnGMZTQ== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-proposal-async-generator-functions" "^7.13.8" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-dynamic-import" "^7.13.8" + "@babel/plugin-proposal-export-namespace-from" "^7.12.13" + "@babel/plugin-proposal-json-strings" "^7.13.8" + "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-numeric-separator" "^7.12.13" + "@babel/plugin-proposal-object-rest-spread" "^7.13.8" + "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.8" + "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.12.13" + "@babel/plugin-transform-arrow-functions" "^7.13.0" + "@babel/plugin-transform-async-to-generator" "^7.13.0" + "@babel/plugin-transform-block-scoped-functions" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.12.13" + "@babel/plugin-transform-classes" "^7.13.0" + "@babel/plugin-transform-computed-properties" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.13.0" + "@babel/plugin-transform-dotall-regex" "^7.12.13" + "@babel/plugin-transform-duplicate-keys" "^7.12.13" + "@babel/plugin-transform-exponentiation-operator" "^7.12.13" + "@babel/plugin-transform-for-of" "^7.13.0" + "@babel/plugin-transform-function-name" "^7.12.13" + "@babel/plugin-transform-literals" "^7.12.13" + "@babel/plugin-transform-member-expression-literals" "^7.12.13" + "@babel/plugin-transform-modules-amd" "^7.13.0" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/plugin-transform-modules-systemjs" "^7.13.8" + "@babel/plugin-transform-modules-umd" "^7.13.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" + "@babel/plugin-transform-new-target" "^7.12.13" + "@babel/plugin-transform-object-super" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-property-literals" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.12.13" + "@babel/plugin-transform-reserved-words" "^7.12.13" + "@babel/plugin-transform-shorthand-properties" "^7.12.13" + "@babel/plugin-transform-spread" "^7.13.0" + "@babel/plugin-transform-sticky-regex" "^7.12.13" + "@babel/plugin-transform-template-literals" "^7.13.0" + "@babel/plugin-transform-typeof-symbol" "^7.12.13" + "@babel/plugin-transform-unicode-escapes" "^7.12.13" + "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.13.0" + babel-plugin-polyfill-corejs2 "^0.1.4" + babel-plugin-polyfill-corejs3 "^0.1.3" + babel-plugin-polyfill-regenerator "^0.1.2" + core-js-compat "^3.9.0" + semver "^6.3.0" "@babel/preset-flow@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.9.0.tgz#fee847c3e090b0b2d9227c1949e4da1d1379280d" - integrity sha512-88uSmlshIrlmPkNkEcx3UpSZ6b8n0UGBq0/0ZMZCF/uxAW0XIAUuDHBhIOAh0pvweafH4RxOwi/H3rWhtqOYPA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.12.13.tgz#71ee7fe65a95b507ac12bcad65a4ced27d8dfc3e" + integrity sha512-gcEjiwcGHa3bo9idURBp5fmJPcyFPOszPQjztXrOjUE2wWVqc6fIVJPgWPIQksaQ5XZ2HWiRsf2s1fRGVjUtVw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-flow-strip-types" "^7.9.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-flow-strip-types" "^7.12.13" -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -838,93 +881,110 @@ esutils "^2.0.2" "@babel/preset-react@^7.9.4": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz#c6c97693ac65b6b9c0b4f25b948a8f665463014d" - integrity sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.13.tgz#5f911b2eb24277fa686820d5bd81cad9a0602a0a" + integrity sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-react-display-name" "^7.8.3" - "@babel/plugin-transform-react-jsx" "^7.9.4" - "@babel/plugin-transform-react-jsx-development" "^7.9.0" - "@babel/plugin-transform-react-jsx-self" "^7.9.0" - "@babel/plugin-transform-react-jsx-source" "^7.9.0" - -"@babel/runtime-corejs3@^7.8.3": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz#67aded13fffbbc2cb93247388cf84d77a4be9a71" - integrity sha512-6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA== - dependencies: - core-js-pure "^3.0.0" - regenerator-runtime "^0.13.4" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-react-display-name" "^7.12.13" + "@babel/plugin-transform-react-jsx" "^7.12.13" + "@babel/plugin-transform-react-jsx-development" "^7.12.12" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" "@babel/runtime@^7.8.4": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" - integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.9.tgz#97dbe2116e2630c489f22e0656decd60aaa1fcee" + integrity sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" - integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.6" - "@babel/types" "^7.9.6" +"@babel/template@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.7.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" + integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.0" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.0" + "@babel/types" "^7.13.0" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" + lodash "^4.17.19" -"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" - integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.13.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" + integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" to-fast-properties "^2.0.0" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@eslint/eslintrc@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" + integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents": + version "2.1.8-no-fsevents" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b" + integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" "@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: - "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" +"@types/json-schema@^7.0.5": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "14.0.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.4.tgz#43a63fc5edce226bed106b31b875165256271107" - integrity sha512-k3NqigXWRzQZVBDS5D1U70A5E8Qk4Kh+Ha/x4M8Bt9pF0X05eggfnC9+63Usc9Q928hRUIpIhTQaXsZwZBl4Ew== + version "14.14.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" + integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== "@types/prop-types@*": version "15.7.3" @@ -932,19 +992,19 @@ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== "@types/react-dom@^16.9.8": - version "16.9.8" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" - integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== + version "16.9.11" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.11.tgz#752e223a1592a2c10f2668b215a0e0667f4faab1" + integrity sha512-3UuR4MoWf5spNgrG6cwsmT9DdRghcR4IDFOzNZ6+wcmacxkFykcb5ji0nNVm9ckBT4BCxvCrJJbM4+EYsEEVIg== dependencies: - "@types/react" "*" + "@types/react" "^16" -"@types/react@*", "@types/react@^16.9.35": - version "16.9.35" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.35.tgz#a0830d172e8aadd9bd41709ba2281a3124bbd368" - integrity sha512-q0n0SsWcGc8nDqH2GJfWQWUOmZSJhXV64CjVN5SvcNti3TdEaA3AH0D8DwNmMdzjMAC/78tB8nAZIlV8yTz+zQ== +"@types/react@^16", "@types/react@^16.9.35": + version "16.14.4" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.4.tgz#365f6a1e117d1eec960ba792c7e1e91ecad38e6f" + integrity sha512-ETj7GbkPGjca/A4trkVeGvoIakmLV6ZtX3J8dcmOpzKzWVybbrOxanwaIPG71GZwImoMDY6Fq4wIe34lEqZ0FQ== dependencies: "@types/prop-types" "*" - csstype "^2.2.0" + csstype "^3.0.2" "@types/yauzl@^2.9.1": version "2.9.1" @@ -1121,10 +1181,10 @@ acorn-es7-plugin@^1.0.12: resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" integrity sha1-8u4fMiipDurRJF+asZIusucdM2s= -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== acorn@^5.0.0: version "5.7.4" @@ -1132,14 +1192,14 @@ acorn@^5.0.0: integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" - integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== after@0.8.2: version "0.8.2" @@ -1156,32 +1216,40 @@ ajv-errors@^1.0.0: resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^7.0.2: + version "7.1.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84" + integrity sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-html@0.0.7: version "0.0.7" @@ -1221,11 +1289,10 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" anymatch@^2.0.0: @@ -1286,13 +1353,15 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.0.3, array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== +array-includes@^3.1.1, array-includes@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" is-string "^1.0.5" array-union@^1.0.1: @@ -1312,19 +1381,30 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.flatmap@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + function-bind "^1.1.1" + arraybuffer.slice@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" asn1@~0.2.3: version "0.2.4" @@ -1351,10 +1431,10 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-each@^1.0.1: version "1.0.3" @@ -1389,9 +1469,9 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== babel-eslint@^10.1.0: version "10.1.0" @@ -1406,14 +1486,13 @@ babel-eslint@^10.1.0: resolve "^1.12.0" babel-loader@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.1.0" + find-cache-dir "^3.3.1" loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" + make-dir "^3.1.0" schema-utils "^2.6.5" babel-plugin-dynamic-import-node@^2.3.3: @@ -1436,6 +1515,30 @@ babel-plugin-espower@^3.0.1: espurify "^1.6.0" estraverse "^4.1.1" +babel-plugin-polyfill-corejs2@^0.1.4: + version "0.1.10" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz#a2c5c245f56c0cac3dbddbf0726a46b24f0f81d1" + integrity sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA== + dependencies: + "@babel/compat-data" "^7.13.0" + "@babel/helper-define-polyfill-provider" "^0.1.5" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" + integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.1.5" + core-js-compat "^3.8.1" + +babel-plugin-polyfill-regenerator@^0.1.2: + version "0.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz#0fe06a026fe0faa628ccc8ba3302da0a6ce02f3f" + integrity sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.1.5" + babel-plugin-transform-inline-environment-variables@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.3.tgz#a3b09883353be8b5e2336e3ff1ef8a5d93f9c489" @@ -1451,15 +1554,15 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64id@2.0.0: version "2.0.0" @@ -1491,13 +1594,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -1509,9 +1605,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.5.0: version "1.5.0" @@ -1520,10 +1616,10 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bl@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" - integrity sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ== +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" inherits "^2.0.4" @@ -1539,15 +1635,15 @@ bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" - integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== body-parser@1.19.0, body-parser@^1.19.0: version "1.19.0" @@ -1608,7 +1704,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -1645,23 +1741,23 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: bn.js "^5.1.1" browserify-rsa "^4.0.1" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.2" + elliptic "^6.5.3" inherits "^2.0.4" parse-asn1 "^5.1.5" readable-stream "^3.6.0" @@ -1674,15 +1770,16 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.11.1, browserslist@^4.8.5: - version "4.12.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" - integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== +browserslist@^4.14.5, browserslist@^4.16.3: + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== dependencies: - caniuse-lite "^1.0.30001043" - electron-to-chromium "^1.3.413" - node-releases "^1.1.53" - pkg-up "^2.0.0" + caniuse-lite "^1.0.30001181" + colorette "^1.2.1" + electron-to-chromium "^1.3.649" + escalade "^3.1.1" + node-releases "^1.1.70" buffer-crc32@~0.2.3: version "0.2.13" @@ -1714,12 +1811,12 @@ buffer@^4.3.0: isarray "^1.0.0" buffer@^5.2.1, buffer@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" + base64-js "^1.3.1" + ieee754 "^1.1.13" builtin-status-codes@^3.0.0: version "3.0.0" @@ -1772,6 +1869,14 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + call-matcher@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.1.0.tgz#23b2c1bc7a8394c8be28609d77ddbd5786680432" @@ -1787,11 +1892,6 @@ call-signature@0.0.2: resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" integrity sha1-qEq8glpV70yysCi9dOIFpluaSZY= -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1802,25 +1902,16 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001043: - version "1.0.30001062" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001062.tgz#d814b648338504b315222ace6f1a533d9a55e390" - integrity sha512-ei9ZqeOnN7edDrb24QfJ0OZicpEbsWxv7WusOiQGz/f2SfvBgHHbOEwBJ8HKGVSyx8Z6ndPjxzR6m0NQq+0bfw== +caniuse-lite@^1.0.30001181: + version "1.0.30001196" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001196.tgz#00518a2044b1abf3e0df31fadbe5ed90b63f4e64" + integrity sha512-CPvObjD3ovWrNBaXlAIGWmg2gQQuJ5YhuciUOjPRox6hIQttu8O+b51dx6VIpIY9ESd2d0Vac1RKpICdG4rGUg== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" @@ -1832,27 +1923,23 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" chalk@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -1872,10 +1959,10 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.0.0, chokidar@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" - integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== +chokidar@^3.4.0, chokidar@^3.4.1, chokidar@^3.4.2: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -1883,9 +1970,9 @@ chokidar@^3.0.0, chokidar@^3.4.0: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.5.0" optionalDependencies: - fsevents "~2.1.2" + fsevents "~2.3.1" chownr@^1.1.1: version "1.1.4" @@ -1922,18 +2009,6 @@ classnames@^2.2.5: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -1993,6 +2068,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -2124,16 +2204,16 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - cookie@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -2151,23 +2231,18 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== +core-js-compat@^3.8.1, core-js-compat@^3.9.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455" + integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== dependencies: - browserslist "^4.8.5" + browserslist "^4.16.3" semver "7.0.0" -core-js-pure@^3.0.0: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" - integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== - core-js@^2.0.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2175,12 +2250,12 @@ core-util-is@1.0.2, core-util-is@~1.0.0: integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" - elliptic "^6.0.0" + elliptic "^6.5.3" create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" @@ -2205,7 +2280,16 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@6.0.5, cross-spawn@^6.0.0: +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2216,19 +2300,10 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" - integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -2251,10 +2326,10 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -csstype@^2.2.0: - version "2.6.10" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" - integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== +csstype@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" + integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== custom-event@~1.0.0: version "1.0.1" @@ -2290,17 +2365,17 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - ms "^2.1.1" + ms "2.1.2" -debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +debug@^3.1.1, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" @@ -2311,6 +2386,13 @@ debug@~3.1.0: dependencies: ms "2.0.0" +debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2427,9 +2509,9 @@ di@^0.0.1: integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= diff-match-patch@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1" - integrity sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" + integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== diffie-hellman@^5.0.0: version "5.0.3" @@ -2517,23 +2599,23 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.413: - version "1.3.446" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.446.tgz#12c336bc858e04d6b614a488f32f2dd89561601f" - integrity sha512-CLQaFuvkKqR9FD2G3cJrr1fV7DRMXiAKWLP2F8cxtvvtzAS7Tubt0kF47/m+uE61kiT+I7ZEn7HqLnmWdOhmuA== +electron-to-chromium@^1.3.649: + version "1.3.681" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.681.tgz#facd915ae46a020e8be566a2ecdc0b9444439be9" + integrity sha512-W6uYvSUTHuyX2DZklIESAqx57jfmGjUkd7Z3RWqLdj9Mmt39ylhBuvFXlskQnvBHj0MYXIeQI+mjiwVddZLSvA== -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emoji-regex@^7.0.1: version "7.0.3" @@ -2545,11 +2627,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -2583,63 +2660,61 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~3.4.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.2.tgz#4fb2ef2b1fe1d3aa1c621c6a8d87f1fc55426b50" - integrity sha512-AWjc1Xg06a6UPFOBAzJf48W1UR/qKYmv/ubgSCumo9GXgvL/xGIvo05dXoBL+2NTLMipDI7in8xK61C17L25xg== +engine.io-client@~3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.1.tgz#b500458a39c0cd197a921e0e759721a746d0bdb9" + integrity sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ== dependencies: component-emitter "~1.3.0" component-inherit "0.0.3" - debug "~4.1.0" + debug "~3.1.0" engine.io-parser "~2.2.0" has-cors "1.1.0" indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~6.1.0" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.4.2" xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" engine.io-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" - integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== + version "2.2.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== dependencies: after "0.8.2" arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" + base64-arraybuffer "0.1.4" blob "0.0.5" has-binary2 "~1.0.2" -engine.io@~3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.1.tgz#a61cbc13fa0cb27d9453fd079a29ee980564b069" - integrity sha512-8MfIfF1/IIfxuc2gv5K+XlFZczw/BpTvqBdl0E2fBLkYQp4miv4LuDTVtYt4yMyaIFLEr4vtaSgV4mjvll8Crw== +engine.io@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" + integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== dependencies: accepts "~1.3.4" base64id "2.0.0" - cookie "0.3.1" + cookie "~0.4.1" debug "~4.1.0" engine.io-parser "~2.2.0" - ws "^7.1.2" + ws "~7.4.2" -enhanced-resolve@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== +enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" - memory-fs "^0.4.0" + memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" + ansi-colors "^4.1.1" ent@~2.2.0: version "2.2.0" @@ -2647,28 +2722,33 @@ ent@~2.2.0: integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + get-intrinsic "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -2684,6 +2764,11 @@ es6-promise@^4.0.3: resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2695,21 +2780,21 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.5: integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= eslint-plugin-react@^7.20.0: - version "7.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3" - integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA== + version "7.22.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz#3d1c542d1d3169c45421c1215d9470e341707269" + integrity sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== dependencies: array-includes "^3.1.1" + array.prototype.flatmap "^1.2.3" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.2.3" - object.entries "^1.1.1" + jsx-ast-utils "^2.4.1 || ^3.0.0" + object.entries "^1.1.2" object.fromentries "^2.0.2" object.values "^1.1.1" prop-types "^15.7.2" - resolve "^1.15.1" + resolve "^1.18.1" string.prototype.matchall "^4.0.2" - xregexp "^4.3.0" eslint-scope@^4.0.3: version "4.0.3" @@ -2719,56 +2804,62 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" - integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - esrecurse "^4.1.0" + esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" - integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== eslint@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.0.0.tgz#c35dfd04a4372110bd78c69a8d79864273919a08" - integrity sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg== + version "7.21.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.21.0.tgz#4ecd5b8c5b44f5dedc9b8a110b01bbfeb15d1c83" + integrity sha512-W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg== dependencies: - "@babel/code-frame" "^7.0.0" + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - eslint-visitor-keys "^1.1.0" - espree "^7.0.0" - esquery "^1.2.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" esutils "^2.0.2" - file-entry-cache "^5.0.1" + file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" glob-parent "^5.0.0" globals "^12.1.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.14" + lodash "^4.17.20" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -2777,7 +2868,7 @@ eslint@^7.0.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^5.2.3" + table "^6.0.4" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -2791,14 +2882,14 @@ espower-location-detector@^1.0.0: source-map "^0.5.0" xtend "^4.0.0" -espree@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" - integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0: version "4.0.1" @@ -2812,29 +2903,29 @@ espurify@^1.6.0: dependencies: core-js "^2.0.0" -esquery@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "^4.1.0" + estraverse "^5.2.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== esutils@^2.0.2: version "2.0.3" @@ -2847,14 +2938,14 @@ etag@~1.8.1: integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== eventsource@^1.0.7: version "1.0.7" @@ -2960,15 +3051,6 @@ extend@^3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -2994,9 +3076,9 @@ extract-zip@^1.6.5: yauzl "^2.10.0" extract-zip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.0.tgz#f53b71d44f4ff5a4527a2259ade000fb8b303492" - integrity sha512-i42GQ498yibjdvIhivUsRslx608whtGoFIhF26Z7O4MYncBxp8CwalOs1lnHy21A9sIohWO2+uiE4SRtC9JXDg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" get-stream "^5.1.0" @@ -3015,9 +3097,9 @@ extsprintf@^1.2.0: integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -3029,14 +3111,7 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: +faye-websocket@^0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== @@ -3055,19 +3130,12 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - flat-cache "^2.0.1" + flat-cache "^3.0.4" file-size@0.0.5: version "0.0.5" @@ -3118,12 +3186,14 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: - locate-path "^2.0.0" + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" find-up@^3.0.0: version "3.0.0" @@ -3132,7 +3202,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.1.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -3140,7 +3210,7 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@3.0.0: +findup-sync@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== @@ -3150,20 +3220,24 @@ findup-sync@3.0.0: micromatch "^3.0.4" resolve-dir "^1.0.1" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + flatted "^3.1.0" + rimraf "^3.0.2" -flatted@^2.0.0, flatted@^2.0.1, flatted@^2.0.2: +flatted@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + flow-bin@^0.125.1: version "0.125.1" resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.125.1.tgz#7edbc71e7dc39ddef18086ef75c714bbf1c5917f" @@ -3178,11 +3252,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" - integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA== - dependencies: - debug "^3.0.0" + version "1.13.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" + integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== for-in@^1.0.2: version "1.0.2" @@ -3279,10 +3351,10 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" @@ -3294,16 +3366,25 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -3312,9 +3393,9 @@ get-stream@^4.0.0: pump "^3.0.0" get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" @@ -3357,13 +3438,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -3373,6 +3447,13 @@ global-modules@^1.0.0: is-windows "^1.0.1" resolve-dir "^1.0.0" +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" @@ -3417,9 +3498,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== handle-thing@^2.0.0: version "2.0.1" @@ -3432,11 +3513,11 @@ har-schema@^2.0.0: integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: - ajv "^6.5.5" + ajv "^6.12.3" har-schema "^2.0.0" has-ansi@^0.1.0: @@ -3446,6 +3527,11 @@ has-ansi@^0.1.0: dependencies: ansi-regex "^0.2.0" +has-bigints@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + has-binary2@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" @@ -3468,10 +3554,10 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has-value@^0.3.1: version "0.3.1" @@ -3536,7 +3622,7 @@ hasha@^2.2.0: is-stream "^1.0.1" pinkie-promise "^2.0.0" -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -3563,9 +3649,9 @@ hpack.js@^2.1.6: wbuf "^1.1.0" html-entities@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" - integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== http-deceiver@^1.2.7: version "1.2.7" @@ -3604,10 +3690,10 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -"http-parser-js@>=0.4.0 <0.4.11": - version "0.4.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== http-proxy-middleware@0.19.1: version "0.19.1" @@ -3650,17 +3736,17 @@ https-proxy-agent@^4.0.0: agent-base "5" debug "4" -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" @@ -3672,15 +3758,15 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -import-fresh@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@2.0.0, import-local@^2.0.0: +import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== @@ -3727,28 +3813,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.4, ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" - integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-ip@^4.3.0: version "4.3.0" @@ -3758,31 +3825,19 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: - es-abstract "^1.17.0-next.1" + get-intrinsic "^1.1.0" has "^1.0.3" - side-channel "^1.0.2" + side-channel "^1.0.4" -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== ip-regex@^2.1.0: version "2.1.0" @@ -3819,9 +3874,16 @@ is-accessor-descriptor@^1.0.0: kind-of "^6.0.0" is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== is-binary-path@^1.0.0: version "1.0.1" @@ -3837,15 +3899,29 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" @@ -3885,9 +3961,9 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: kind-of "^6.0.2" is-docker@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" - integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" @@ -3930,6 +4006,16 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -3968,12 +4054,13 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== +is-regex@^1.0.4, is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== dependencies: - has "^1.0.3" + call-bind "^1.0.2" + has-symbols "^1.0.1" is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" @@ -3985,7 +4072,7 @@ is-string@^1.0.5: resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== -is-symbol@^1.0.2: +is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== @@ -4057,9 +4144,9 @@ isstream@~0.1.2: integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= jasmine-core@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4" - integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA== + version "3.6.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.6.0.tgz#491f3bb23941799c353ceb7a45b38a950ebc5a20" + integrity sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -4067,9 +4154,9 @@ jasmine-core@^3.5.0: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -4099,6 +4186,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -4114,7 +4206,7 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.2: +json3@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== @@ -4127,9 +4219,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== dependencies: minimist "^1.2.5" @@ -4157,13 +4249,13 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" - integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== dependencies: - array-includes "^3.0.3" - object.assign "^4.1.0" + array-includes "^3.1.2" + object.assign "^4.1.2" karma-chrome-launcher@^3.1.0: version "3.1.0" @@ -4194,9 +4286,9 @@ karma-ie-launcher@^1.0.0: lodash "^4.6.1" karma-jasmine@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-3.1.1.tgz#f592b253e7619a8d84559d7daf473a647498ade8" - integrity sha512-pxBmv5K7IkBRLsFSTOpgiK/HzicQT3mfFF+oHAC7nxMfYKhaYFgxOa5qjnHW4sL5rUnmdkSajoudOnnOdPyW4Q== + version "3.3.1" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-3.3.1.tgz#c01b1a2ec973e1531c1f6535e1d7d66b8e4275c2" + integrity sha512-Nxh7eX9mOQMyK0VSsMxdod+bcqrR/ikrmEiWj5M6fwuQ7oI+YEF1FckaDsWfs6TIpULm9f0fTKMjF7XcrvWyqQ== dependencies: jasmine-core "^3.5.0" @@ -4226,23 +4318,22 @@ karma-webpack@^4.0.2: webpack-dev-middleware "^3.7.0" karma@^5.0.9: - version "5.0.9" - resolved "https://registry.yarnpkg.com/karma/-/karma-5.0.9.tgz#11a119b0c763a806fdc471b40c594a2240b5ca13" - integrity sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg== + version "5.2.3" + resolved "https://registry.yarnpkg.com/karma/-/karma-5.2.3.tgz#3264024219bad2728e92542e0058a2492d7a46e4" + integrity sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ== dependencies: body-parser "^1.19.0" braces "^3.0.2" - chokidar "^3.0.0" + chokidar "^3.4.2" colors "^1.4.0" connect "^3.7.0" di "^0.0.1" dom-serialize "^2.2.1" - flatted "^2.0.2" glob "^7.1.6" graceful-fs "^4.2.4" http-proxy "^1.18.1" isbinaryfile "^4.0.6" - lodash "^4.17.15" + lodash "^4.17.19" log4js "^6.2.1" mime "^2.4.5" minimatch "^3.0.4" @@ -4252,7 +4343,7 @@ karma@^5.0.9: socket.io "^2.3.0" source-map "^0.6.1" tmp "0.2.1" - ua-parser-js "0.7.21" + ua-parser-js "0.7.22" yargs "^15.3.1" kew@^0.7.0: @@ -4293,27 +4384,8 @@ klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= - optionalDependencies: - graceful-fs "^4.1.9" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" + optionalDependencies: + graceful-fs "^4.1.9" levn@^0.4.1: version "0.4.1" @@ -4328,15 +4400,6 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" @@ -4346,14 +4409,6 @@ loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: emojis-list "^3.0.0" json5 "^1.0.1" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -4369,15 +4424,20 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.6.1: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.6.1: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log4js@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.2.1.tgz#fc23a3bf287f40f5b48259958e5e0ed30d558eeb" - integrity sha512-7n+Oqxxz7VcQJhIlqhcYZBTpbcQ7XsR0MUIfJkx/n3VUjkAS4iUr+4UJlhxf28RvP9PMGQXbgTUhLApnu0XXgA== + version "6.3.0" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" + integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== dependencies: date-format "^3.0.0" debug "^4.1.1" @@ -4386,11 +4446,11 @@ log4js@^6.2.1: streamroller "^2.2.4" loglevel@^1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -4412,6 +4472,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -4420,12 +4487,12 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: - p-defer "^1.0.0" + semver "^6.0.0" map-cache@^0.2.2: version "0.2.2" @@ -4453,16 +4520,7 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1: +memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= @@ -4515,17 +4573,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== +mime-db@1.46.0, "mime-db@>= 1.43.0 < 2": + version "1.46.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" + integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + version "2.1.29" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" + integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== dependencies: - mime-db "1.44.0" + mime-db "1.46.0" mime@1.6.0, mime@^1.2.11: version "1.6.0" @@ -4533,21 +4591,16 @@ mime@1.6.0, mime@^1.2.11: integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.0.3, mime@^2.4.4, mime@^2.4.5: - version "2.4.5" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.5.tgz#d8de2ecb92982dedbb6541c9b6841d7f218ea009" - integrity sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w== - -mimic-fn@^2.0.0, mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= @@ -4593,7 +4646,7 @@ mkdirp-classic@^0.5.2: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -4622,11 +4675,16 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" @@ -4640,15 +4698,10 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanomatch@^1.2.9: version "1.2.13" @@ -4678,19 +4731,19 @@ negotiator@0.6.2: integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== node-libs-browser@^2.2.1: version "2.2.1" @@ -4721,10 +4774,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.53: - version "1.1.56" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.56.tgz#bc054a417d316e3adac90eafb7e1932802f28705" - integrity sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw== +node-releases@^1.1.70: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== normalize-path@^2.1.1: version "2.1.1" @@ -4755,11 +4808,6 @@ object-assign@^4.0.1, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -4769,20 +4817,20 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== +object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" -object-keys@^1.0.0, object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.0, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -4794,34 +4842,34 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" -object.entries@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" - integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== +object.entries@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" has "^1.0.3" object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.2" has "^1.0.3" object.pick@^1.3.0: @@ -4832,13 +4880,13 @@ object.pick@^1.3.0: isobject "^3.0.1" object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" + integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.2" has "^1.0.3" obuf@^1.0.0, obuf@^1.1.2: @@ -4865,13 +4913,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -4903,47 +4944,16 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -4951,13 +4961,6 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -4984,11 +4987,6 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -5016,13 +5014,12 @@ parent-module@^1.0.0: callsites "^3.0.0" parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: - asn1.js "^4.0.0" + asn1.js "^5.2.0" browserify-aes "^1.0.0" - create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" @@ -5032,19 +5029,15 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" @@ -5107,9 +5100,9 @@ path-to-regexp@0.1.7: integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -5176,21 +5169,21 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: - find-up "^2.1.0" + find-up "^4.0.0" portfinder@^1.0.26: - version "1.0.26" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" - integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== dependencies: async "^2.6.2" debug "^3.1.1" - mkdirp "^0.5.1" + mkdirp "^0.5.5" posix-character-classes@^0.1.0: version "0.1.1" @@ -5310,11 +5303,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -5430,9 +5418,9 @@ punycode@^2.1.0, punycode@^2.1.1: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== puppeteer@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.1.0.tgz#d44efdc5410809025f38bca2de106c3ae5c85a52" - integrity sha512-jLa9sqdVx0tPnr2FcwAq+8DSjGhSM4YpkwOf3JE22Ycyqm71SW7B5uGfTyMGFoLCmbCozbLZclCjasPb0flTRw== + version "3.3.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.3.0.tgz#95839af9fdc0aa4de7e5ee073a4c0adeb9e2d3d7" + integrity sha512-23zNqRltZ1PPoK28uRefWJ/zKb5Jhnzbbwbpcna2o5+QMn17F0khq5s1bdH3vPlyj+J36pubccR8wiNA/VE0Vw== dependencies: debug "^4.1.0" extract-zip "^2.0.0" @@ -5471,11 +5459,11 @@ querystring@0.2.0: integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -5506,9 +5494,9 @@ raw-body@2.4.0: unpipe "1.0.0" react-dom@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -5516,9 +5504,9 @@ react-dom@^16.13.1: scheduler "^0.19.1" react-frame-component@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.2.tgz#c88fcc1e73fbe83eea6c82d95d66eefe44cd1ea4" - integrity sha512-gWTtpOoi8Mgxayj0iWLL3SXRu2jW4eW4oim6B/FycaOH9HHIsCTPulC9u7CZ2BwY0CtqA+v8FsINp6qPuaN6qQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.3.tgz#64c09dd29574720879c5f43ee36c17d8ae74d4ec" + integrity sha512-4PurhctiqnmC1F5prPZ+LdsalH7pZ3SFA5xoc0HBe8mSHctdLLt4Cr2WXfXOoajHBYq/yiipp9zOgx+vy8GiEA== react-is@^16.8.1, react-is@^16.8.6: version "16.13.1" @@ -5526,9 +5514,9 @@ react-is@^16.8.1, react-is@^16.8.6: integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-test-renderer@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" - integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" + integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" @@ -5536,9 +5524,9 @@ react-test-renderer@^16.13.1: scheduler "^0.19.1" react@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -5575,10 +5563,10 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" @@ -5590,22 +5578,21 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" - private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -5615,23 +5602,23 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.2.0" @@ -5641,14 +5628,14 @@ regexpu-core@^4.7.0: unicode-match-property-value-ecmascript "^1.2.0" regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + version "0.6.7" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" + integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== dependencies: jsesc "~0.5.0" @@ -5705,6 +5692,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -5745,21 +5737,14 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.12.0, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.3.3: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== +resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.3.3: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: + is-core-module "^2.2.0" path-parse "^1.0.6" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -5771,16 +5756,9 @@ retry@^0.12.0: integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= rfdc@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" - integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" + version "1.2.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.2.0.tgz#9e9894258f48f284b43c3143c68070a4f373b949" + integrity sha512-ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA== rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" @@ -5804,11 +5782,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -5816,13 +5789,6 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.5.3: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -5863,44 +5829,47 @@ schema-utils@^1.0.0: ajv-keywords "^3.1.0" schema-utils@^2.6.5: - version "2.6.6" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c" - integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA== + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^1.10.7: - version "1.10.7" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== +selfsigned@^1.10.8: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== dependencies: - node-forge "0.9.0" + node-forge "^0.10.0" semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: +semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.2.1, semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" send@0.17.1: version "0.17.1" @@ -5921,10 +5890,12 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" serve-index@^1.9.1: version "1.9.1" @@ -6018,15 +5989,16 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" - integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: - es-abstract "^1.17.0-next.1" - object-inspect "^1.7.0" + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -6036,14 +6008,14 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" snapdragon-node@^2.0.1: version "2.1.1" @@ -6080,32 +6052,29 @@ socket.io-adapter@~1.1.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== -socket.io-client@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== +socket.io-client@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" + integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== dependencies: backo2 "1.0.2" - base64-arraybuffer "0.1.5" component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" + component-emitter "~1.3.0" + debug "~3.1.0" + engine.io-client "~3.5.0" has-binary2 "~1.0.2" - has-cors "1.1.0" indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" + parseqs "0.0.6" + parseuri "0.0.6" socket.io-parser "~3.3.0" to-array "0.1.4" socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== dependencies: - component-emitter "1.2.1" + component-emitter "~1.3.0" debug "~3.1.0" isarray "2.0.1" @@ -6119,37 +6088,37 @@ socket.io-parser@~3.4.0: isarray "2.0.1" socket.io@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" - integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.1.tgz#95ad861c9a52369d7f1a68acf0d4a1b16da451d2" + integrity sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w== dependencies: debug "~4.1.0" - engine.io "~3.4.0" + engine.io "~3.5.0" has-binary2 "~1.0.2" socket.io-adapter "~1.1.0" - socket.io-client "2.3.0" + socket.io-client "2.4.0" socket.io-parser "~3.4.0" -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== +sockjs-client@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" + integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== dependencies: - debug "^3.2.5" + debug "^3.2.6" eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.4.7" -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== dependencies: - faye-websocket "^0.10.0" + faye-websocket "^0.11.3" uuid "^3.4.0" - websocket-driver "0.6.5" + websocket-driver "^0.7.4" source-list-map@^2.0.0: version "2.0.1" @@ -6176,9 +6145,9 @@ source-map-support@~0.5.12: source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" @@ -6334,59 +6303,42 @@ string-width@^3.0.0, string-width@^3.1.0: strip-ansi "^5.1.0" string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + version "4.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" + integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.2" has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -6444,17 +6396,10 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-json-comments@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== - -supports-color@6.1.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^0.2.0: version "0.2.0" @@ -6468,22 +6413,29 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +table@^6.0.4: + version "6.0.7" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" + ajv "^7.0.2" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -6491,45 +6443,45 @@ tapable@^1.0.0, tapable@^1.1.3: integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar-fs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5" - integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg== + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== dependencies: chownr "^1.1.1" mkdirp-classic "^0.5.2" pump "^3.0.0" - tar-stream "^2.0.0" + tar-stream "^2.1.4" -tar-stream@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" - integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: - bl "^4.0.1" + bl "^4.0.3" end-of-stream "^1.4.1" fs-constants "^1.0.0" inherits "^2.0.3" readable-stream "^3.1.1" terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^2.1.2" + serialize-javascript "^4.0.0" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" terser@^4.1.2: - version "4.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006" - integrity sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw== + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -6553,7 +6505,7 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.6, through@^2.3.8: +through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -6564,9 +6516,9 @@ thunky@^1.0.2: integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" @@ -6577,13 +6529,6 @@ tmp@0.2.1: dependencies: rimraf "^3.0.0" -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" @@ -6650,9 +6595,9 @@ traverse@^0.6.6: integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tty-browserify@0.0.0: version "0.0.0" @@ -6678,11 +6623,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" @@ -6707,19 +6647,29 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.9.3: - version "3.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a" - integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== + version "3.9.9" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" + integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== + +ua-parser-js@0.7.22: + version "0.7.22" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" + integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== -ua-parser-js@0.7.21: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== +unbox-primitive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" + integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.0" + has-symbols "^1.0.0" + which-boxed-primitive "^1.0.1" unbzip2-stream@^1.3.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.2.tgz#84eb9e783b186d8fb397515fbb656f312f1a7dbf" - integrity sha512-pZMVAofMrrHX6Ik39hCk470kulCbmZ2SWfQLPmTWqfJV/oUm0gn1CblvHdUu4+54Je6Jq34x8kY6XjTy6dMkOg== + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== dependencies: buffer "^5.2.1" through "^2.3.8" @@ -6804,9 +6754,9 @@ upath@^1.1.1: integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" @@ -6815,10 +6765,10 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== +url-parse@^1.4.3, url-parse@^1.4.7: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -6865,15 +6815,10 @@ uuid@^3.3.2, uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -v8-compile-cache@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== - -v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== +v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== vary@~1.1.2: version "1.1.2" @@ -6899,23 +6844,23 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== dependencies: chokidar "^2.1.8" -watchpack@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" - integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: - chokidar "^3.4.0" - watchpack-chokidar2 "^2.0.0" + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -6925,26 +6870,26 @@ wbuf@^1.1.0, wbuf@^1.7.3: minimalistic-assert "^1.0.0" webpack-cli@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" - integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" + version "3.3.12" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" + integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== + dependencies: + chalk "^2.4.2" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.1" + findup-sync "^3.0.0" + global-modules "^2.0.0" + import-local "^2.0.0" + interpret "^1.4.0" + loader-utils "^1.4.0" + supports-color "^6.1.0" + v8-compile-cache "^2.1.1" + yargs "^13.3.2" webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== dependencies: memory-fs "^0.4.1" mime "^2.4.4" @@ -6953,9 +6898,9 @@ webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2: webpack-log "^2.0.0" webpack-dev-server@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== + version "3.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -6977,11 +6922,11 @@ webpack-dev-server@^3.11.0: p-retry "^3.0.1" portfinder "^1.0.26" schema-utils "^1.0.0" - selfsigned "^1.10.7" + selfsigned "^1.10.8" semver "^6.3.0" serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" + sockjs "^0.3.21" + sockjs-client "^1.5.0" spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" @@ -7008,9 +6953,9 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-map "~0.6.1" webpack@^4.43.0: - version "4.43.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -7020,7 +6965,7 @@ webpack@^4.43.0: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" + enhanced-resolve "^4.5.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -7033,22 +6978,15 @@ webpack@^4.43.0: schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" + watchpack "^1.7.4" webpack-sources "^1.4.1" -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= - dependencies: - websocket-extensions ">=0.1.1" - -websocket-driver@>=0.5.1: - version "0.7.3" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: - http-parser-js ">=0.4.0 <0.4.11" + http-parser-js ">=0.5.1" safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" @@ -7057,6 +6995,17 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +which-boxed-primitive@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -7118,13 +7067,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - ws@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" @@ -7132,39 +7074,25 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.1.2, ws@^7.2.3: - version "7.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" +ws@^7.2.3, ws@~7.4.2: + version "7.4.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== xmlhttprequest-ssl@~1.5.4: version "1.5.5" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= -xregexp@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" - integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== - dependencies: - "@babel/runtime-corejs3" "^7.8.3" - xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^2.1.2: version "2.1.2" @@ -7176,7 +7104,12 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@^13.1.0, yargs-parser@^13.1.2: +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -7184,7 +7117,7 @@ yargs-parser@^13.1.0, yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.1: +yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -7192,23 +7125,6 @@ yargs-parser@^18.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - yargs@^13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -7226,9 +7142,9 @@ yargs@^13.3.2: yargs-parser "^13.1.2" yargs@^15.3.1: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" decamelize "^1.2.0" @@ -7240,7 +7156,7 @@ yargs@^15.3.1: string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^18.1.1" + yargs-parser "^18.1.2" yauzl@^2.10.0: version "2.10.0" From 006dabdbd0c254378cb4a4d6999845deac160968 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 5 Mar 2021 14:04:28 -0500 Subject: [PATCH 381/412] chore(dev): update major devDep versions Remove power-assert, it's just not worth it now that it's this old --- .babelrc.js | 9 +- .flowconfig | 2 + Makefile | 8 +- karma.conf.js | 43 +- package.json | 16 +- specs/draggable.spec.jsx | 4 +- yarn.lock | 2164 +++++++++++--------------------------- 7 files changed, 681 insertions(+), 1565 deletions(-) diff --git a/.babelrc.js b/.babelrc.js index 34bd349d..1cfeea58 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -15,12 +15,5 @@ module.exports = { "@babel/plugin-transform-flow-comments", "@babel/plugin-proposal-class-properties", "transform-inline-environment-variables" - ], - "env": { - "test": { - "plugins": [ - "espower" - ] - } - } + ] } diff --git a/.flowconfig b/.flowconfig index f53979f7..14d5bf1e 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,4 +1,5 @@ [ignore] +/node_modules/webpack-cli.* [include] lib/ @@ -12,3 +13,4 @@ suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowNewLine.* suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowIssue esproposal.class_instance_fields=enable esproposal.class_static_fields=enable +sharedmemory.heap_size=3221225472 diff --git a/Makefile b/Makefile index a931e54b..6773c7e8 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ build-cjs: $(BIN) $(BIN)/babel --out-dir ./build/cjs ./lib build-web: $(BIN) - $(BIN)/webpack --mode=production --display-modules + $(BIN)/webpack --mode=production # Allows usage of `make install`, `make link` install link: @@ -54,13 +54,13 @@ define release git tag "v$$NEXT_VERSION" -m "release v$$NEXT_VERSION" endef -release-patch: test +release-patch: test @$(call release,patch) -release-minor: test +release-minor: test @$(call release,minor) -release-major: test +release-major: test @$(call release,major) publish: build diff --git a/karma.conf.js b/karma.conf.js index 7224541e..02e72f90 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,15 +1,37 @@ 'use strict'; const _ = require('lodash'); +const webpack = require('webpack'); process.env.NODE_ENV = 'test'; process.env.CHROME_BIN = require('puppeteer').executablePath(); module.exports = function(config) { + const webpackConfig = _.merge( + require('./webpack.config.js')({}, {}), + { + mode: 'production', + // Remove source maps: *speeeeeed* + devtool: false, + cache: true, + performance: { + hints: false, + }, + // zero out externals; we want to bundle React + externals: '', + } + ); + + delete webpackConfig.entry; // karma-webpack complains + delete webpackConfig.output; // karma-webpack complains + webpackConfig.plugins.push(new webpack.DefinePlugin({ + process: {env: {}}, + })); + config.set({ basePath: '', - frameworks: [ 'jasmine'], + frameworks: ['webpack', 'jasmine'], files: [ 'specs/draggable.spec.jsx' @@ -22,24 +44,7 @@ module.exports = function(config) { 'specs/draggable.spec.jsx': ['webpack'] }, - webpack: _.merge( - require('./webpack.config.js')({}, {}), - { - mode: 'production', - // Remove source maps: *speeeeeed* - devtool: 'none', - cache: true, - module: { - // Suppress power-assert warning - exprContextCritical: false, - }, - performance: { - hints: false, - }, - // zero out externals; we want to bundle React - externals: '', - } - ), + webpack: webpackConfig, webpackServer: { stats: { diff --git a/package.json b/package.json index e5cf6568..0bf92d21 100644 --- a/package.json +++ b/package.json @@ -47,27 +47,27 @@ "@babel/preset-react": "^7.9.4", "@types/react": "^16.9.35", "@types/react-dom": "^16.9.8", + "assert": "^2.0.0", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", - "babel-plugin-espower": "^3.0.1", "babel-plugin-transform-inline-environment-variables": "^0.4.3", "eslint": "^7.0.0", "eslint-plugin-react": "^7.20.0", "flow-bin": "^0.125.1", "jasmine-core": "^3.5.0", - "karma": "^5.0.9", + "karma": "^6.1.1", "karma-chrome-launcher": "^3.1.0", "karma-cli": "2.0.0", - "karma-firefox-launcher": "^1.3.0", + "karma-firefox-launcher": "^2.1.0", "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^3.1.1", + "karma-jasmine": "^4.0.1", "karma-phantomjs-launcher": "^1.0.4", "karma-phantomjs-shim": "^1.5.0", - "karma-webpack": "^4.0.2", + "karma-webpack": "^5.0.0", "lodash": "^4.17.4", "phantomjs-prebuilt": "^2.1.16", - "power-assert": "^1.4.4", "pre-commit": "^1.2.2", + "process": "^0.11.10", "puppeteer": "^3.1.0", "react": "^16.13.1", "react-dom": "^16.13.1", @@ -76,8 +76,8 @@ "semver": "^7.3.2", "static-server": "^3.0.0", "typescript": "^3.9.3", - "webpack": "^4.43.0", - "webpack-cli": "^3.3.11", + "webpack": "^5.24.3", + "webpack-cli": "^4.5.0", "webpack-dev-server": "^3.11.0" }, "resolutions": { diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index c0cd31e8..e1ac78d0 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -5,7 +5,7 @@ import TestUtils from 'react-dom/test-utils'; import ShallowRenderer from 'react-test-renderer/shallow'; import Draggable, {DraggableCore} from '../lib/Draggable'; import FrameComponent from 'react-frame-component'; -import assert from 'power-assert'; +import assert from 'assert'; import _ from 'lodash'; import {getPrefix, browserPrefixToKey, browserPrefixToStyle} from '../lib/utils/getPrefix'; const transformStyle = browserPrefixToStyle('transform', getPrefix('transform')); @@ -143,7 +143,7 @@ describe('react-draggable', function () { assert(data.deltaY === 200); } drag = TestUtils.renderIntoDocument( -
diff --git a/yarn.lock b/yarn.lock index 68498d37..47df172a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -60,7 +60,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.12.13", "@babel/generator@^7.13.0": +"@babel/generator@^7.12.13", "@babel/generator@^7.13.0": version "7.13.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== @@ -277,7 +277,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.4", "@babel/parser@^7.7.0": +"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.4", "@babel/parser@^7.7.0": version "7.13.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== @@ -931,6 +931,11 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@discoveryjs/json-ext@^0.5.0": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" + integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== + "@eslint/eslintrc@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" @@ -963,6 +968,42 @@ readdirp "^2.2.1" upath "^1.1.1" +"@types/component-emitter@^1.2.10": + version "1.2.10" + resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" + integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== + +"@types/cookie@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" + integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== + +"@types/cors@^2.8.8": + version "2.8.10" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" + integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== + +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.2.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" + integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.46": + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== + "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -971,7 +1012,7 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/json-schema@^7.0.5": +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== @@ -981,7 +1022,7 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*": +"@types/node@*", "@types/node@>=10.0.0": version "14.14.31" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== @@ -1013,150 +1054,143 @@ dependencies: "@types/node" "*" -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== +"@webassemblyjs/ast@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" + integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + "@webassemblyjs/helper-numbers" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== +"@webassemblyjs/floating-point-hex-parser@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" + integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" +"@webassemblyjs/helper-api-error@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" + integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== +"@webassemblyjs/helper-buffer@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" + integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== +"@webassemblyjs/helper-numbers@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" + integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== dependencies: - "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== +"@webassemblyjs/helper-wasm-bytecode@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" + integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== +"@webassemblyjs/helper-wasm-section@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" + integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== +"@webassemblyjs/ieee754@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" + integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== +"@webassemblyjs/leb128@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" + integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/utf8@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" + integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== +"@webassemblyjs/wasm-edit@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" + integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/helper-wasm-section" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-opt" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + "@webassemblyjs/wast-printer" "1.11.0" + +"@webassemblyjs/wasm-gen@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" + integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== +"@webassemblyjs/wasm-opt@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" + integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== +"@webassemblyjs/wasm-parser@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" + integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" +"@webassemblyjs/wast-printer@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" + integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== +"@webpack-cli/configtest@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz#241aecfbdc715eee96bed447ed402e12ec171935" + integrity sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ== + +"@webpack-cli/info@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz#ef3c0cd947a1fa083e174a59cb74e0b6195c236c" + integrity sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz#2730c770f5f1f132767c63dcaaa4ec28f8c56a6c" + integrity sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -1176,35 +1210,20 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-es7-plugin@^1.0.12: - version "1.1.7" - resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" - integrity sha1-8u4fMiipDurRJF+asZIusucdM2s= - acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== -acorn@^5.0.0: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= +acorn@^8.0.4: + version "8.0.5" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz#a3bfb872a74a6a7f661bc81b9849d9cac12601b7" + integrity sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg== agent-base@5: version "5.1.1" @@ -1216,12 +1235,12 @@ ajv-errors@^1.0.0: resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1311,11 +1330,6 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1391,21 +1405,6 @@ array.prototype.flatmap@^1.2.3: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -1418,13 +1417,15 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== +assert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" + integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== dependencies: - object-assign "^4.1.1" - util "0.10.3" + es6-object-assign "^1.1.0" + is-nan "^1.2.1" + object-is "^1.0.1" + util "^0.12.0" assign-symbols@^1.0.0: version "1.0.0" @@ -1463,6 +1464,13 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +available-typed-arrays@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" + integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== + dependencies: + array-filter "^1.0.0" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -1502,19 +1510,6 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-espower@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-3.0.1.tgz#180db17126f88e754105b8b5216d21e520a6bd4e" - integrity sha512-Ms49U7VIAtQ/TtcqRbD6UBmJBUCSxiC3+zPc+eGqxKUIFO1lTshyEDRUjhoAbd2rWfwYf3cZ62oXozrd8W6J0A== - dependencies: - "@babel/generator" "^7.0.0" - "@babel/parser" "^7.0.0" - call-matcher "^1.0.0" - core-js "^2.0.0" - espower-location-detector "^1.0.0" - espurify "^1.6.0" - estraverse "^4.1.1" - babel-plugin-polyfill-corejs2@^0.1.4: version "0.1.10" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz#a2c5c245f56c0cac3dbddbf0726a46b24f0f81d1" @@ -1544,11 +1539,6 @@ babel-plugin-transform-inline-environment-variables@^0.4.3: resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.3.tgz#a3b09883353be8b5e2336e3ff1ef8a5d93f9c489" integrity sha1-o7CYgzU76LXiM24/8e+KXZP5xIk= -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1559,12 +1549,12 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64id@2.0.0: +base64id@2.0.0, base64id@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== @@ -1625,26 +1615,6 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - body-parser@1.19.0, body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -1704,72 +1674,6 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - browserslist@^4.14.5, browserslist@^4.16.3: version "4.16.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" @@ -1796,20 +1700,6 @@ buffer-indexof@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -1818,11 +1708,6 @@ buffer@^5.2.1, buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -1833,27 +1718,6 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1877,21 +1741,6 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-matcher@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.1.0.tgz#23b2c1bc7a8394c8be28609d77ddbd5786680432" - integrity sha512-IoQLeNwwf9KTNbtSA7aEBb1yfDbdnzwjCetjkC8io5oGeOmK2CBNdg0xr+tadRYKO0p7uQyZzvon0kXlZbvGrw== - dependencies: - core-js "^2.0.0" - deep-equal "^1.0.0" - espurify "^1.6.0" - estraverse "^4.0.0" - -call-signature@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" - integrity sha1-qEq8glpV70yysCi9dOIFpluaSZY= - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1923,7 +1772,7 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^2.0.0, chalk@^2.4.2: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1959,7 +1808,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.0, chokidar@^3.4.1, chokidar@^3.4.2: +chokidar@^3.4.0, chokidar@^3.4.2: version "3.5.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== @@ -1986,14 +1835,6 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -2018,14 +1859,14 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + wrap-ansi "^7.0.0" clone-deep@^4.0.1: version "4.0.1" @@ -2095,31 +1936,21 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" + integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - component-emitter@^1.2.1, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -2145,7 +1976,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.2: +concat-stream@^1.4.7, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -2170,16 +2001,6 @@ connect@^3.7.0: parseurl "~1.3.3" utils-merge "1.0.1" -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -2214,18 +2035,6 @@ cookie@~0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -2239,46 +2048,18 @@ core-js-compat@^3.8.1, core-js-compat@^3.9.0: browserslist "^4.16.3" semver "7.0.0" -core-js@^2.0.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" + object-assign "^4" + vary "^1" cross-spawn@^5.0.1: version "5.1.0" @@ -2289,7 +2070,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2300,7 +2081,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2309,23 +2090,6 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - csstype@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" @@ -2336,11 +2100,6 @@ custom-event@~1.0.0: resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -2365,7 +2124,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -2379,20 +2138,6 @@ debug@^3.1.1, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2403,7 +2148,7 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-equal@^1.0.0, deep-equal@^1.0.1: +deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== @@ -2428,7 +2173,7 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -2480,24 +2225,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -2508,20 +2240,6 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -diff-match-patch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" - integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2566,26 +2284,6 @@ dom-serialize@^2.2.1: extend "^3.0.0" void-elements "^2.0.0" -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2604,19 +2302,6 @@ electron-to-chromium@^1.3.649: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.681.tgz#facd915ae46a020e8be566a2ecdc0b9444439be9" integrity sha512-W6uYvSUTHuyX2DZklIESAqx57jfmGjUkd7Z3RWqLdj9Mmt39ylhBuvFXlskQnvBHj0MYXIeQI+mjiwVddZLSvA== -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -2632,84 +2317,47 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -empower-core@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-1.2.0.tgz#ce3fb2484d5187fa29c23fba8344b0b2fdf5601c" - integrity sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ== - dependencies: - call-signature "0.0.2" - core-js "^2.0.0" - -empower@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/empower/-/empower-1.3.1.tgz#768979cbbb36d71d8f5edaab663deacb9dab916c" - integrity sha512-uB6/ViBaawOO/uujFADTK3SqdYlxYNn+N4usK9MRKZ4Hbn/1QSy8k2PezxCA2/+JGbF8vd/eOfghZ90oOSDZCA== - dependencies: - core-js "^2.0.0" - empower-core "^1.2.0" - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" -engine.io-client@~3.5.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.1.tgz#b500458a39c0cd197a921e0e759721a746d0bdb9" - integrity sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~7.4.2" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" - integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== +engine.io-parser@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" + integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" base64-arraybuffer "0.1.4" - blob "0.0.5" - has-binary2 "~1.0.2" -engine.io@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" - integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== +engine.io@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-4.1.1.tgz#9a8f8a5ac5a5ea316183c489bf7f5b6cf91ace5b" + integrity sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w== dependencies: accepts "~1.3.4" base64id "2.0.0" cookie "~0.4.1" - debug "~4.1.0" - engine.io-parser "~2.2.0" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~4.0.0" ws "~7.4.2" -enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== +enhanced-resolve@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" + integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" + graceful-fs "^4.2.4" + tapable "^2.2.0" -enquirer@^2.3.5: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -2721,7 +2369,12 @@ ent@~2.2.0: resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= -errno@^0.1.3, errno@~0.1.7: +envinfo@^7.7.3: + version "7.7.4" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" + integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== + +errno@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -2750,6 +2403,11 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.0" +es-module-lexer@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" + integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -2759,6 +2417,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-object-assign@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" + integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= + es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -2796,14 +2459,6 @@ eslint-plugin-react@^7.20.0: resolve "^1.18.1" string.prototype.matchall "^4.0.2" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -2872,16 +2527,6 @@ eslint@^7.0.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espower-location-detector@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" - integrity sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU= - dependencies: - is-url "^1.2.1" - path-is-absolute "^1.0.0" - source-map "^0.5.0" - xtend "^4.0.0" - espree@^7.3.0, espree@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" @@ -2896,13 +2541,6 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -espurify@^1.6.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.8.1.tgz#5746c6c1ab42d302de10bd1d5bf7f0e8c0515056" - integrity sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg== - dependencies: - core-js "^2.0.0" - esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" @@ -2910,14 +2548,14 @@ esquery@^1.4.0: dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -2942,7 +2580,7 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0: +events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -2954,14 +2592,6 @@ eventsource@^1.0.7: dependencies: original "^1.0.0" -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -2975,6 +2605,21 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" + integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -2988,13 +2633,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -3111,6 +2749,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastest-levenshtein@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + faye-websocket@^0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" @@ -3125,11 +2768,6 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -3177,15 +2815,6 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" @@ -3202,7 +2831,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -3210,16 +2839,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -3243,14 +2862,6 @@ flow-bin@^0.125.1: resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.125.1.tgz#7edbc71e7dc39ddef18086ef75c714bbf1c5917f" integrity sha512-jEury9NTXylxQEOAXLWEE945BjBwYcMwwKVnb+5XORNwMQE7i5hQYF0ysYfsaaYOa7rW/U16rHBfwLuaZfWV7A== -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - follow-redirects@^1.0.0: version "1.13.3" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" @@ -3261,6 +2872,11 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -3292,14 +2908,6 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -3328,16 +2936,6 @@ fs-readdir-recursive@^1.1.0: resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3371,7 +2969,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -3399,6 +2997,11 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -3426,7 +3029,12 @@ glob-parent@^5.0.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -3438,42 +3046,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -3497,7 +3069,7 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -3532,18 +3104,6 @@ has-bigints@^1.0.0: resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3597,23 +3157,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - hasha@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" @@ -3622,22 +3165,6 @@ hasha@^2.2.0: is-stream "^1.0.1" pinkie-promise "^2.0.0" -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -3723,11 +3250,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - https-proxy-agent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" @@ -3736,6 +3258,11 @@ https-proxy-agent@^4.0.0: agent-base "5" debug "4" +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3743,16 +3270,11 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.13: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -3774,21 +3296,19 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3797,26 +3317,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - internal-ip@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -3834,10 +3344,10 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== ip-regex@^2.1.0: version "2.1.0" @@ -3992,6 +3502,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-function@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" + integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -4006,6 +3521,14 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-nan@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + is-negative-zero@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" @@ -4067,6 +3590,11 @@ is-stream@^1.0.1, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-string@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" @@ -4079,17 +3607,23 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.1" +is-typed-array@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" + integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== + dependencies: + available-typed-arrays "^1.0.2" + call-bind "^1.0.2" + es-abstract "^1.18.0-next.2" + foreach "^2.0.5" + has-symbols "^1.0.1" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-url@^1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -4099,23 +3633,18 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.0: +is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - isbinaryfile@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" @@ -4143,11 +3672,20 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jasmine-core@^3.5.0: +jasmine-core@^3.5.0, jasmine-core@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.6.0.tgz#491f3bb23941799c353ceb7a45b38a950ebc5a20" integrity sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw== +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4271,12 +3809,13 @@ karma-cli@2.0.0: dependencies: resolve "^1.3.3" -karma-firefox-launcher@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz#ebcbb1d1ddfada6be900eb8fae25bcf2dcdc8171" - integrity sha512-Fi7xPhwrRgr+94BnHX0F5dCl1miIW4RHnzjIGxF8GaIEp7rNqX7LSi7ok63VXs3PS/5MQaQMhGxw+bvD+pibBQ== +karma-firefox-launcher@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.0.tgz#d0d328c93dfcf9b46f1ac83b4bb32f43aadb2050" + integrity sha512-dkiyqN2R6fCWt78rciOXJLFDWcQ7QEQi++HgebPJlw1y0ycDjGNDHuSrhdh48QG02fzZKK20WHFWVyBZ6CPngg== dependencies: - is-wsl "^2.1.0" + is-wsl "^2.2.0" + which "^2.0.1" karma-ie-launcher@^1.0.0: version "1.0.0" @@ -4285,12 +3824,12 @@ karma-ie-launcher@^1.0.0: dependencies: lodash "^4.6.1" -karma-jasmine@^3.1.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-3.3.1.tgz#c01b1a2ec973e1531c1f6535e1d7d66b8e4275c2" - integrity sha512-Nxh7eX9mOQMyK0VSsMxdod+bcqrR/ikrmEiWj5M6fwuQ7oI+YEF1FckaDsWfs6TIpULm9f0fTKMjF7XcrvWyqQ== +karma-jasmine@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-4.0.1.tgz#b99e073b6d99a5196fc4bffc121b89313b0abd82" + integrity sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw== dependencies: - jasmine-core "^3.5.0" + jasmine-core "^3.6.0" karma-phantomjs-launcher@^1.0.4: version "1.0.4" @@ -4305,22 +3844,19 @@ karma-phantomjs-shim@^1.5.0: resolved "https://registry.yarnpkg.com/karma-phantomjs-shim/-/karma-phantomjs-shim-1.5.0.tgz#e8db65883480f0dbd184cc961d39c64511742200" integrity sha512-t0h1x7btXROaGElv36TLpuoWqTnVZ/f+GJHH/qVerjbX6AENoM5brQoB9ISO3hQ6zO1k9rDSRLrY5ZZb83ANdg== -karma-webpack@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz#23219bd95bdda853e3073d3874d34447c77bced0" - integrity sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A== +karma-webpack@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.0.tgz#2a2c7b80163fe7ffd1010f83f5507f95ef39f840" + integrity sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA== dependencies: - clone-deep "^4.0.1" - loader-utils "^1.1.0" - neo-async "^2.6.1" - schema-utils "^1.0.0" - source-map "^0.7.3" - webpack-dev-middleware "^3.7.0" + glob "^7.1.3" + minimatch "^3.0.4" + webpack-merge "^4.1.5" -karma@^5.0.9: - version "5.2.3" - resolved "https://registry.yarnpkg.com/karma/-/karma-5.2.3.tgz#3264024219bad2728e92542e0058a2492d7a46e4" - integrity sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ== +karma@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.1.1.tgz#a7539618cca0f2cbb26d5497120ec31fe340c2a1" + integrity sha512-vVDFxFGAsclgmFjZA/qGw5xqWdZIWxVD7xLyCukYUYd5xs/uGzYbXGOT5zOruVBQleKEmXIr4H2hzGCTn+M9Cg== dependencies: body-parser "^1.19.0" braces "^3.0.2" @@ -4340,11 +3876,11 @@ karma@^5.0.9: qjobs "^1.2.0" range-parser "^1.2.1" rimraf "^3.0.2" - socket.io "^2.3.0" + socket.io "^3.1.0" source-map "^0.6.1" tmp "0.2.1" - ua-parser-js "0.7.22" - yargs "^15.3.1" + ua-parser-js "^0.7.23" + yargs "^16.1.1" kew@^0.7.0: version "0.7.0" @@ -4395,12 +3931,12 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -4429,7 +3965,7 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.6.1: +lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.6.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4465,13 +4001,6 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -4479,7 +4008,7 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -make-dir@^2.0.0, make-dir@^2.1.0: +make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -4506,15 +4035,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -4523,15 +4043,7 @@ media-typer@0.3.0: memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -4541,12 +4053,17 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -4565,20 +4082,12 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.46.0, "mime-db@>= 1.43.0 < 2": version "1.46.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.29" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== @@ -4595,16 +4104,16 @@ mime@^2.0.3, mime@^2.4.4, mime@^2.4.5: resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -4617,22 +4126,6 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -4646,25 +4139,13 @@ mkdirp-classic@^0.5.2: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5: +mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4730,7 +4211,7 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.1: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -4745,35 +4226,6 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-releases@^1.1.70: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" @@ -4798,12 +4250,19 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -4830,7 +4289,7 @@ object-is@^1.0.1: call-bind "^1.0.2" define-properties "^1.1.3" -object-keys@^1.0.0, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -4913,6 +4372,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -4939,11 +4405,6 @@ original@^1.0.0: dependencies: url-parse "^1.4.3" -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" @@ -4961,6 +4422,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -4992,20 +4460,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -5013,32 +4467,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parseqs@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" - integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== - -parseuri@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" - integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -5049,11 +4477,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -5084,7 +4507,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -5099,17 +4522,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -5169,7 +4581,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -5190,105 +4602,6 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -power-assert-context-formatter@^1.0.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz#8fbe72692288ec5a7203cdf215c8b838a6061d2a" - integrity sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg== - dependencies: - core-js "^2.0.0" - power-assert-context-traversal "^1.2.0" - -power-assert-context-reducer-ast@^1.0.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz#c7ca1c9e39a6fb717f7ac5fe9e76e192bf525df3" - integrity sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw== - dependencies: - acorn "^5.0.0" - acorn-es7-plugin "^1.0.12" - core-js "^2.0.0" - espurify "^1.6.0" - estraverse "^4.2.0" - -power-assert-context-traversal@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz#f6e71454baf640de5c1c9c270349f5c9ab0b2e94" - integrity sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ== - dependencies: - core-js "^2.0.0" - estraverse "^4.1.0" - -power-assert-formatter@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a" - integrity sha1-XcEl7VCj37HdomwZNH879Y7CiEo= - dependencies: - core-js "^2.0.0" - power-assert-context-formatter "^1.0.7" - power-assert-context-reducer-ast "^1.0.7" - power-assert-renderer-assertion "^1.0.7" - power-assert-renderer-comparison "^1.0.7" - power-assert-renderer-diagram "^1.0.7" - power-assert-renderer-file "^1.0.7" - -power-assert-renderer-assertion@^1.0.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz#3db6ffcda106b37bc1e06432ad0d748a682b147a" - integrity sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg== - dependencies: - power-assert-renderer-base "^1.1.1" - power-assert-util-string-width "^1.2.0" - -power-assert-renderer-base@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb" - integrity sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s= - -power-assert-renderer-comparison@^1.0.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz#e4f88113225a69be8aa586ead05aef99462c0495" - integrity sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g== - dependencies: - core-js "^2.0.0" - diff-match-patch "^1.0.0" - power-assert-renderer-base "^1.1.1" - stringifier "^1.3.0" - type-name "^2.0.1" - -power-assert-renderer-diagram@^1.0.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz#37f66e8542e5677c5b58e6d72b01c0d9a30e2219" - integrity sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg== - dependencies: - core-js "^2.0.0" - power-assert-renderer-base "^1.1.1" - power-assert-util-string-width "^1.2.0" - stringifier "^1.3.0" - -power-assert-renderer-file@^1.0.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz#3f4bebd9e1455d75cf2ac541e7bb515a87d4ce4b" - integrity sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg== - dependencies: - power-assert-renderer-base "^1.1.1" - -power-assert-util-string-width@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz#6e06d5e3581bb876c5d377c53109fffa95bd91a0" - integrity sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A== - dependencies: - eastasianwidth "^0.2.0" - -power-assert@^1.4.4: - version "1.6.1" - resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.6.1.tgz#b28cbc02ae808afd1431d0cd5093a39ac5a5b1fe" - integrity sha512-VWkkZV6Y+W8qLX/PtJu2Ur2jDPIs0a5vbP0TpKeybNcIXmT4vcKoVkyTp5lnQvTpY/DxacAZ4RZisHRHLJcAZQ== - dependencies: - define-properties "^1.1.2" - empower "^1.3.1" - power-assert-formatter "^1.4.1" - universal-deep-strict-equal "^1.2.1" - xtend "^4.0.0" - pre-commit@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" @@ -5323,11 +4636,6 @@ progress@^2.0.0, progress@^2.0.1: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -5365,26 +4673,6 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -5393,25 +4681,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -5448,11 +4722,6 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -5463,21 +4732,13 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -5532,7 +4793,7 @@ react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -5545,7 +4806,7 @@ react@^16.13.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -5570,6 +4831,13 @@ readdirp@~3.5.0: dependencies: picomatch "^2.2.1" +rechoir@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" + integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + dependencies: + resolve "^1.9.0" + regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" @@ -5714,13 +4982,12 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" + resolve-from "^5.0.0" resolve-from@^3.0.0: version "3.0.0" @@ -5732,12 +4999,17 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.3.3: +resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.3.3, resolve@^1.9.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -5760,7 +5032,7 @@ rfdc@^1.1.4: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.2.0.tgz#9e9894258f48f284b43c3143c68070a4f373b949" integrity sha512-ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA== -rimraf@^2.5.4, rimraf@^2.6.3: +rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -5774,27 +5046,12 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -5837,6 +5094,15 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -5890,10 +5156,10 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== dependencies: randombytes "^2.1.0" @@ -5935,11 +5201,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -5950,14 +5211,6 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -5998,7 +5251,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0: +signal-exit@^3.0.0, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -6047,57 +5300,34 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== +socket.io-adapter@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz#edc5dc36602f2985918d631c1399215e97a1b527" + integrity sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg== -socket.io-client@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" - integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== +socket.io-parser@~4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" + integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== dependencies: - backo2 "1.0.2" - component-bind "1.0.0" + "@types/component-emitter" "^1.2.10" component-emitter "~1.3.0" - debug "~3.1.0" - engine.io-client "~3.5.0" - has-binary2 "~1.0.2" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" - integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== + debug "~4.3.1" + +socket.io@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-3.1.2.tgz#06e27caa1c4fc9617547acfbb5da9bc1747da39a" + integrity sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw== dependencies: - component-emitter "~1.3.0" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" - integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== - dependencies: - component-emitter "1.2.1" - debug "~4.1.0" - isarray "2.0.1" - -socket.io@^2.3.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.1.tgz#95ad861c9a52369d7f1a68acf0d4a1b16da451d2" - integrity sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w== - dependencies: - debug "~4.1.0" - engine.io "~3.5.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.4.0" - socket.io-parser "~3.4.0" + "@types/cookie" "^0.4.0" + "@types/cors" "^2.8.8" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "~2.0.0" + debug "~4.3.1" + engine.io "~4.1.0" + socket.io-adapter "~2.1.0" + socket.io-parser "~4.0.3" sockjs-client@^1.5.0: version "1.5.0" @@ -6120,7 +5350,7 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" -source-list-map@^2.0.0: +source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -6136,7 +5366,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@~0.5.12: +source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -6154,12 +5384,12 @@ source-map@^0.5.0, source-map@^0.5.6: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: +source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -6222,13 +5452,6 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -6252,38 +5475,6 @@ static-server@^3.0.0: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - streamroller@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" @@ -6340,7 +5531,7 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -6354,15 +5545,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringifier@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.4.0.tgz#d704581567f4526265d00ed8ecb354a02c3fec28" - integrity sha512-cNsMOqqrcbLcHTXEVmkw9y0fwDwkdgtZwlfyolzpQDoAE1xdNGhQhxBUfiDvvZIKl1hnUEgMv66nHwtMz3OjPw== - dependencies: - core-js "^2.0.0" - traverse "^0.6.6" - type-name "^2.0.1" - strip-ansi@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" @@ -6396,6 +5578,11 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -6420,7 +5607,7 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -6437,10 +5624,10 @@ table@^6.0.4: slice-ansi "^4.0.0" string-width "^4.2.0" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== tar-fs@^2.0.0: version "2.1.1" @@ -6463,29 +5650,26 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== +terser-webpack-plugin@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" + integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" + jest-worker "^26.6.2" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" + terser "^5.5.1" -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== +terser@^5.5.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" + integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" text-table@^0.2.0: version "0.2.0" @@ -6497,14 +5681,6 @@ throttleit@^1.0.0: resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -6515,13 +5691,6 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - tmp@0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" @@ -6529,16 +5698,6 @@ tmp@0.2.1: dependencies: rimraf "^3.0.0" -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -6589,21 +5748,11 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -traverse@^0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= - tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -6636,11 +5785,6 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -type-name@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" - integrity sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q= - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -6651,10 +5795,10 @@ typescript@^3.9.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== -ua-parser-js@0.7.22: - version "0.7.22" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" - integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== +ua-parser-js@^0.7.23: + version "0.7.24" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz#8d3ecea46ed4f1f1d63ec25f17d8568105dc027c" + integrity sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw== unbox-primitive@^1.0.0: version "1.0.0" @@ -6707,29 +5851,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universal-deep-strict-equal@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" - integrity sha1-DaSsL3PP95JMgfpN4BjKViyisKc= - dependencies: - array-filter "^1.0.0" - indexof "0.0.1" - object-keys "^1.0.0" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -6791,19 +5912,17 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== +util@^0.12.0: + version "0.12.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" + integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== dependencies: - inherits "2.0.3" + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" utils-merge@1.0.1: version "1.0.1" @@ -6815,12 +5934,12 @@ uuid@^3.3.2, uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: +v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== -vary@~1.1.2: +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -6834,33 +5953,18 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== +watchpack@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" + integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== dependencies: + glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -6869,24 +5973,27 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -webpack-cli@^3.3.11: - version "3.3.12" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" - integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== +webpack-cli@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz#b5213b84adf6e1f5de6391334c9fa53a48850466" + integrity sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q== dependencies: - chalk "^2.4.2" - cross-spawn "^6.0.5" - enhanced-resolve "^4.1.1" - findup-sync "^3.0.0" - global-modules "^2.0.0" - import-local "^2.0.0" - interpret "^1.4.0" - loader-utils "^1.4.0" - supports-color "^6.1.0" - v8-compile-cache "^2.1.1" - yargs "^13.3.2" - -webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.0.1" + "@webpack-cli/info" "^1.2.2" + "@webpack-cli/serve" "^1.3.0" + colorette "^1.2.1" + commander "^7.0.0" + enquirer "^2.3.6" + execa "^5.0.0" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + v8-compile-cache "^2.2.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@^3.7.2: version "3.7.3" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== @@ -6944,42 +6051,57 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.43.0: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" +webpack-merge@^4.1.5: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-merge@^5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" + integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack@^5.24.3: + version "5.24.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.24.3.tgz#6ec0f5059f8d7c7961075fa553cfce7b7928acb3" + integrity sha512-x7lrWZ7wlWAdyKdML6YPvfVZkhD1ICuIZGODE5SzKJjqI9A4SpqGTjGJTc6CwaHqn19gGaoOR3ONJ46nYsn9rw== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.46" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/wasm-edit" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + acorn "^8.0.4" + browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" + enhanced-resolve "^5.7.0" + es-module-lexer "^0.4.0" + eslint-scope "^5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.0.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.1" + watchpack "^2.0.0" + webpack-sources "^2.1.1" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -7011,6 +6133,19 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" + integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== + dependencies: + available-typed-arrays "^1.0.2" + call-bind "^1.0.0" + es-abstract "^1.18.0-next.1" + foreach "^2.0.5" + function-bind "^1.1.1" + has-symbols "^1.0.1" + is-typed-array "^1.1.3" + which@1.2.x: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" @@ -7018,7 +6153,7 @@ which@1.2.x: dependencies: isexe "^2.0.0" -which@^1.2.1, which@^1.2.10, which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@^1.2.1, which@^1.2.10, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -7032,18 +6167,16 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -7053,10 +6186,10 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" @@ -7079,31 +6212,21 @@ ws@^7.2.3, ws@~7.4.2: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - y18n@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -7117,13 +6240,10 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +yargs-parser@^20.2.2: + version "20.2.6" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" + integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== yargs@^13.3.2: version "13.3.2" @@ -7141,22 +6261,18 @@ yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== +yargs@^16.1.1: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" + y18n "^5.0.5" + yargs-parser "^20.2.2" yauzl@^2.10.0: version "2.10.0" @@ -7166,7 +6282,7 @@ yauzl@^2.10.0: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 4a24291b70c5ec8031dd5b9fefbae704d165680d Mon Sep 17 00:00:00 2001 From: programstinator Date: Thu, 11 Mar 2021 17:55:39 +0100 Subject: [PATCH 382/412] Added drop-detection to examples (#541) --- example/example.js | 21 +++++++++++++++++++++ example/index.html | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/example/example.js b/example/example.js index 70dd579d..e5effe93 100644 --- a/example/example.js +++ b/example/example.js @@ -28,6 +28,21 @@ class App extends React.Component { onStop = () => { this.setState({activeDrags: --this.state.activeDrags}); }; + onDrop = (e) => { + this.setState({activeDrags: --this.state.activeDrags}); + if (e.target.classList.contains("drop-target")) { + alert("Dropped!"); + e.target.classList.remove('hovered'); + } + }; + onDropAreaMouseEnter = (e) => { + if (this.state.activeDrags) { + e.target.classList.add('hovered'); + } + } + onDropAreaMouseLeave = (e) => { + e.target.classList.remove('hovered'); + } // For controlled component adjustXPos = (e) => { @@ -115,6 +130,12 @@ class App extends React.Component {
I can only be moved 100px in any direction.
+ +
I can detect drops from the next box.
+
+ +
I can be dropped onto another box.
+
diff --git a/example/index.html b/example/index.html index cb8a3f7f..eccbe04c 100644 --- a/example/index.html +++ b/example/index.html @@ -51,6 +51,12 @@ padding: 10px; float: left; } + .no-pointer-events { + pointer-events: none; + } + .hovered { + background-color: gray; + } /* From e776dfb3a1a0cb324b82a29e6a12970362fafcd0 Mon Sep 17 00:00:00 2001 From: pigcan Date: Mon, 15 Mar 2021 21:53:45 +0800 Subject: [PATCH 383/412] chore: support unpkg (#548) --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 0bf92d21..e4e804bd 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "4.4.3", "description": "React draggable component", "main": "build/cjs/cjs.js", + "unpkg": "build/web/react-draggable.min.js", "scripts": { "test": "make test", "test-phantom": "make test-phantom", From 13f6daf353da3b86116e55349d27427bb2bae2f8 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 22 Mar 2021 15:40:56 -0400 Subject: [PATCH 384/412] chore(dev): upgrade webpack & flow --- .flowconfig | 7 +- Makefile | 6 +- karma.conf.js | 5 +- lib/Draggable.js | 29 ++-- lib/DraggableCore.js | 41 +++-- lib/utils/domFns.js | 2 +- lib/utils/getPrefix.js | 2 +- lib/utils/positionFns.js | 7 +- lib/utils/shims.js | 2 +- package.json | 16 +- specs/draggable.spec.jsx | 2 - webpack.config.js | 5 + yarn.lock | 347 +++++++++++++++++++++------------------ 13 files changed, 251 insertions(+), 220 deletions(-) diff --git a/.flowconfig b/.flowconfig index 14d5bf1e..bde9d703 100644 --- a/.flowconfig +++ b/.flowconfig @@ -6,11 +6,8 @@ lib/ index.js [options] -suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowFixMe.* -suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowBug.* -suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowIgnore.* -suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowNewLine.* -suppress_comment=\\(.\\|\n\\)*\\s*\\$FlowIssue esproposal.class_instance_fields=enable esproposal.class_static_fields=enable sharedmemory.heap_size=3221225472 +esproposal.optional_chaining=enable +exact_by_default=true \ No newline at end of file diff --git a/Makefile b/Makefile index 6773c7e8..a297eaf6 100644 --- a/Makefile +++ b/Makefile @@ -29,13 +29,13 @@ install link: @yarn $@ test: $(BIN) - @NODE_ENV=test $(BIN)/karma start + @$(BIN)/karma start test-phantom: $(BIN) - @NODE_ENV=test $(BIN)/karma start karma-phantomjs.conf.js + @$(BIN)/karma start karma-phantomjs.conf.js dev: $(BIN) clean - env DRAGGABLE_DEBUG=1 $(BIN)/webpack-dev-server + env DRAGGABLE_DEBUG=1 $(BIN)/webpack serve --mode=development node_modules/.bin: install diff --git a/karma.conf.js b/karma.conf.js index 02e72f90..3cd82758 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -2,14 +2,14 @@ const _ = require('lodash'); const webpack = require('webpack'); -process.env.NODE_ENV = 'test'; +process.env.NODE_ENV = 'development'; process.env.CHROME_BIN = require('puppeteer').executablePath(); module.exports = function(config) { const webpackConfig = _.merge( require('./webpack.config.js')({}, {}), { - mode: 'production', + mode: 'development', // Remove source maps: *speeeeeed* devtool: false, cache: true, @@ -23,6 +23,7 @@ module.exports = function(config) { delete webpackConfig.entry; // karma-webpack complains delete webpackConfig.output; // karma-webpack complains + // Make sure `process.env` is present as an object webpackConfig.plugins.push(new webpack.DefinePlugin({ process: {env: {}}, })); diff --git a/lib/Draggable.js b/lib/Draggable.js index 17fbd2b6..e42b47bb 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -7,7 +7,7 @@ import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import DraggableCore from './DraggableCore'; -import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps} from './DraggableCore'; +import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps, DraggableCoreDefaultProps} from './DraggableCore'; import log from './utils/log'; import type {Bounds, DraggableEventHandler} from './utils/types'; import type {Element as ReactElement} from 'react'; @@ -21,18 +21,22 @@ type DraggableState = { prevPropsPosition: ?ControlPosition, }; -export type DraggableProps = { - ...$Exact, +export type DraggableDefaultProps = { + ...DraggableCoreDefaultProps, axis: 'both' | 'x' | 'y' | 'none', bounds: Bounds | string | false, defaultClassName: string, defaultClassNameDragging: string, defaultClassNameDragged: string, defaultPosition: ControlPosition, - nodeRef?: ?React.ElementRef, + scale: number, +}; + +export type DraggableProps = { + ...DraggableCoreProps, + ...DraggableDefaultProps, positionOffset: PositionOffsetControlPosition, position: ControlPosition, - scale: number }; // @@ -41,7 +45,7 @@ export type DraggableProps = { class Draggable extends React.Component { - static displayName = 'Draggable'; + static displayName: ?string = 'Draggable'; static propTypes = { // Accepts all props accepts. @@ -162,7 +166,7 @@ class Draggable extends React.Component { transform: dontSetMe }; - static defaultProps = { + static defaultProps: DraggableDefaultProps = { ...DraggableCore.defaultProps, axis: 'both', bounds: false, @@ -170,24 +174,23 @@ class Draggable extends React.Component { defaultClassNameDragging: 'react-draggable-dragging', defaultClassNameDragged: 'react-draggable-dragged', defaultPosition: {x: 0, y: 0}, - position: null, scale: 1 }; // React 16.3+ // Arity (props, state) - static getDerivedStateFromProps({position}: DraggableProps, {prevPropsPosition}: DraggableState) { + static getDerivedStateFromProps({position}: DraggableProps, {prevPropsPosition}: DraggableState): ?$Shape { // Set x/y if a new position is provided in props that is different than the previous. if ( position && - (!prevPropsPosition || + (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y ) ) { log('Draggable: getDerivedStateFromProps %j', {position, prevPropsPosition}); return { - x: position.x, - y: position.y, + x: position.x, + y: position.y, prevPropsPosition: {...position} }; } @@ -239,7 +242,7 @@ class Draggable extends React.Component { // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find // the underlying DOM node ourselves. See the README for more information. findDOMNode(): ?HTMLElement { - return this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); + return this.props?.nodeRef?.current ?? ReactDOM.findDOMNode(this); } onDragStart: DraggableEventHandler = (e, coreData) => { diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 2260fa5a..c5a3da8f 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -42,21 +42,15 @@ export type DraggableData = { lastX: number, lastY: number, }; -export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void; +export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false; export type ControlPosition = {x: number, y: number}; export type PositionOffsetControlPosition = {x: number|string, y: number|string}; -export type DraggableCoreProps = { +export type DraggableCoreDefaultProps = { allowAnyClick: boolean, - cancel: string, - children: ReactElement, disabled: boolean, enableUserSelectHack: boolean, - offsetParent: HTMLElement, - grid: [number, number], - handle: string, - nodeRef?: ?React.ElementRef, onStart: DraggableEventHandler, onDrag: DraggableEventHandler, onStop: DraggableEventHandler, @@ -64,6 +58,16 @@ export type DraggableCoreProps = { scale: number, }; +export type DraggableCoreProps = { + ...DraggableCoreDefaultProps, + cancel: string, + children: ReactElement, + offsetParent: HTMLElement, + grid: [number, number], + handle: string, + nodeRef?: ?React.ElementRef, +}; + // // Define . // @@ -73,7 +77,7 @@ export type DraggableCoreProps = { export default class DraggableCore extends React.Component { - static displayName = 'DraggableCore'; + static displayName: ?string = 'DraggableCore'; static propTypes = { /** @@ -111,7 +115,7 @@ export default class DraggableCore extends React.Component = (e) => { @@ -441,7 +440,7 @@ export default class DraggableCore extends React.Component { // Reuse the child provided // This makes it flexible to use whatever element is wanted (div, ul, etc) return React.cloneElement(React.Children.only(this.props.children), { @@ -450,7 +449,7 @@ export default class DraggableCore extends React.Component
); assert(drag.props.axis === 'both'); - assert(drag.props.handle === null); - assert(drag.props.cancel === null); assert(drag.props.bounds == false); assert(typeof drag.props.onStart === 'function'); assert(typeof drag.props.onDrag === 'function'); diff --git a/webpack.config.js b/webpack.config.js index 6615d149..ed4dd322 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,7 @@ const path = require('path'); const webpack = require('webpack'); +// Builds web module. Only really used in example code / static site. module.exports = (env, argv) => ({ entry: { 'react-draggable.min': './lib/cjs.js', @@ -17,6 +18,7 @@ module.exports = (env, argv) => ({ contentBase: '.', hot: true, open: true, + inline: false, openPage: 'example/index.html', disableHostCheck: true, writeToDisk: true, @@ -60,5 +62,8 @@ module.exports = (env, argv) => ({ ], optimization: { minimize: false, + }, + stats: { + errorDetails: true, } }); diff --git a/yarn.lock b/yarn.lock index 47df172a..ff334299 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@babel/cli@^7.8.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.13.0.tgz#48e77614e897615ca299bece587b68a70723ff4c" - integrity sha512-y5AohgeVhU+wO5kU1WGMLdocFj83xCxVjsVFa2ilII8NEwmBZvx7Ambq621FbFIK68loYJ9p43nfoi6es+rzSA== +"@babel/cli@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.13.10.tgz#3a9254cbe806639c8ca4ebd49ebe54b4267b88c9" + integrity sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" @@ -33,22 +33,22 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.8.tgz#5b783b9808f15cef71547f1b691f34f8ff6003a6" - integrity sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog== +"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.8": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1" + integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== -"@babel/core@^7.9.6": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.8.tgz#c191d9c5871788a591d69ea1dc03e5843a3680fb" - integrity sha512-oYapIySGw1zGhEFRd6lzWNLWFX2s5dA/jm+Pw/+59ZdXtjyIuwlXbrId22Md0rgZVop+aVoqow2riXhBLNyuQg== +"@babel/core@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" + integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.0" - "@babel/helper-compilation-targets" "^7.13.8" + "@babel/generator" "^7.13.9" + "@babel/helper-compilation-targets" "^7.13.10" "@babel/helper-module-transforms" "^7.13.0" - "@babel/helpers" "^7.13.0" - "@babel/parser" "^7.13.4" + "@babel/helpers" "^7.13.10" + "@babel/parser" "^7.13.10" "@babel/template" "^7.12.13" "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" @@ -60,7 +60,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.12.13", "@babel/generator@^7.13.0": +"@babel/generator@^7.12.13", "@babel/generator@^7.13.0", "@babel/generator@^7.13.9": version "7.13.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== @@ -84,10 +84,10 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz#02bdb22783439afb11b2f009814bdd88384bd468" - integrity sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz#1310a1678cb8427c07a753750da4f8ce442bdd0c" + integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== dependencies: "@babel/compat-data" "^7.13.8" "@babel/helper-validator-option" "^7.12.17" @@ -95,9 +95,9 @@ semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.13.0": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz#0367bd0a7505156ce018ca464f7ac91ba58c1a04" - integrity sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w== + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" + integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== dependencies: "@babel/helper-function-name" "^7.12.13" "@babel/helper-member-expression-to-functions" "^7.13.0" @@ -158,34 +158,33 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-member-expression-to-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz#6aa4bb678e0f8c22f58cdb79451d30494461b091" - integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== +"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" + integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== dependencies: - "@babel/types" "^7.13.0" + "@babel/types" "^7.13.12" -"@babel/helper-module-imports@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" - integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.13.12" "@babel/helper-module-transforms@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" - integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz#600e58350490828d82282631a1422268e982ba96" + integrity sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-simple-access" "^7.13.12" "@babel/helper-split-export-declaration" "^7.12.13" "@babel/helper-validator-identifier" "^7.12.11" "@babel/template" "^7.12.13" "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - lodash "^4.17.19" + "@babel/types" "^7.13.12" "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" @@ -208,22 +207,22 @@ "@babel/helper-wrap-function" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz#6034b7b51943094cb41627848cb219cb02be1d24" - integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" + integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/types" "^7.13.12" -"@babel/helper-simple-access@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" - integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== +"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" + integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.13.12" "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" @@ -259,28 +258,37 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helpers@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.0.tgz#7647ae57377b4f0408bf4f8a7af01c42e41badc0" - integrity sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ== +"@babel/helpers@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" + integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== dependencies: "@babel/template" "^7.12.13" "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481" - integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw== + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" + integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== dependencies: "@babel/helper-validator-identifier" "^7.12.11" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.4", "@babel/parser@^7.7.0": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" - integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== +"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.10", "@babel/parser@^7.7.0": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.12.tgz#ba320059420774394d3b0c0233ba40e4250b81d1" + integrity sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw== + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" + integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" "@babel/plugin-proposal-async-generator-functions@^7.13.8": version "7.13.8" @@ -366,10 +374,10 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz#e39df93efe7e7e621841babc197982e140e90756" - integrity sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== +"@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" + integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" @@ -704,15 +712,15 @@ "@babel/plugin-transform-react-jsx" "^7.12.17" "@babel/plugin-transform-react-jsx@^7.12.13", "@babel/plugin-transform-react-jsx@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz#dd2c1299f5e26de584939892de3cfc1807a38f24" - integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" + integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.12.17" + "@babel/types" "^7.13.12" "@babel/plugin-transform-react-pure-annotations@^7.12.1": version "7.12.1" @@ -787,15 +795,16 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/preset-env@^7.9.6": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.9.tgz#3ee5f233316b10d066d7f379c6d1e13a96853654" - integrity sha512-mcsHUlh2rIhViqMG823JpscLMesRt3QbMsv1+jhopXEb3W2wXvQ9QoiOlZI9ZbR3XqPtaFpZwEZKYqGJnGMZTQ== +"@babel/preset-env@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.12.tgz#6dff470478290582ac282fb77780eadf32480237" + integrity sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA== dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" + "@babel/compat-data" "^7.13.12" + "@babel/helper-compilation-targets" "^7.13.10" "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" "@babel/plugin-proposal-async-generator-functions" "^7.13.8" "@babel/plugin-proposal-class-properties" "^7.13.0" "@babel/plugin-proposal-dynamic-import" "^7.13.8" @@ -806,7 +815,7 @@ "@babel/plugin-proposal-numeric-separator" "^7.12.13" "@babel/plugin-proposal-object-rest-spread" "^7.13.8" "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" "@babel/plugin-proposal-private-methods" "^7.13.0" "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" "@babel/plugin-syntax-async-generators" "^7.8.4" @@ -854,7 +863,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.12.13" "@babel/plugin-transform-unicode-regex" "^7.12.13" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.0" + "@babel/types" "^7.13.12" babel-plugin-polyfill-corejs2 "^0.1.4" babel-plugin-polyfill-corejs3 "^0.1.3" babel-plugin-polyfill-regenerator "^0.1.2" @@ -892,9 +901,9 @@ "@babel/plugin-transform-react-pure-annotations" "^7.12.1" "@babel/runtime@^7.8.4": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.9.tgz#97dbe2116e2630c489f22e0656decd60aaa1fcee" - integrity sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA== + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" + integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== dependencies: regenerator-runtime "^0.13.4" @@ -922,10 +931,10 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.13.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" - integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz#edbf99208ef48852acdff1c8a681a1e4ade580cd" + integrity sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA== dependencies: "@babel/helper-validator-identifier" "^7.12.11" lodash "^4.17.19" @@ -992,9 +1001,9 @@ "@types/estree" "*" "@types/eslint@*": - version "7.2.6" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" - integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== + version "7.2.7" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.7.tgz#f7ef1cf0dceab0ae6f9a976a0a9af14ab1baca26" + integrity sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1023,9 +1032,9 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*", "@types/node@>=10.0.0": - version "14.14.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" - integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== + version "14.14.35" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" + integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== "@types/prop-types@*": version "15.7.3" @@ -1040,13 +1049,19 @@ "@types/react" "^16" "@types/react@^16", "@types/react@^16.9.35": - version "16.14.4" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.4.tgz#365f6a1e117d1eec960ba792c7e1e91ecad38e6f" - integrity sha512-ETj7GbkPGjca/A4trkVeGvoIakmLV6ZtX3J8dcmOpzKzWVybbrOxanwaIPG71GZwImoMDY6Fq4wIe34lEqZ0FQ== + version "16.14.5" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.5.tgz#2c39b5cadefaf4829818f9219e5e093325979f4d" + integrity sha512-YRRv9DNZhaVTVRh9Wmmit7Y0UFhEVqXqCSw3uazRWMxa2x85hWQZ5BN24i7GXZbaclaLXEcodEeIHsjBA8eAMw== dependencies: "@types/prop-types" "*" + "@types/scheduler" "*" csstype "^3.0.2" +"@types/scheduler@*": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" + integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + "@types/yauzl@^2.9.1": version "2.9.1" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" @@ -1221,9 +1236,9 @@ acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.4: - version "8.0.5" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz#a3bfb872a74a6a7f661bc81b9849d9cac12601b7" - integrity sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg== + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" + integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== agent-base@5: version "5.1.1" @@ -1251,9 +1266,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^7.0.2: - version "7.1.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84" - integrity sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ== + version "7.2.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.2.3.tgz#ca78d1cf458d7d36d1c3fa0794dd143406db5772" + integrity sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1752,9 +1767,9 @@ camelcase@^5.0.0: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001181: - version "1.0.30001196" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001196.tgz#00518a2044b1abf3e0df31fadbe5ed90b63f4e64" - integrity sha512-CPvObjD3ovWrNBaXlAIGWmg2gQQuJ5YhuciUOjPRox6hIQttu8O+b51dx6VIpIY9ESd2d0Vac1RKpICdG4rGUg== + version "1.0.30001204" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz#256c85709a348ec4d175e847a3b515c66e79f2aa" + integrity sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ== caseless@~0.12.0: version "0.12.0" @@ -1937,9 +1952,9 @@ commander@^4.0.1: integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== commander@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" - integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commondir@^1.0.1: version "1.0.1" @@ -2231,9 +2246,9 @@ destroy@~1.0.4: integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + version "2.0.5" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" + integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== di@^0.0.1: version "0.0.1" @@ -2298,9 +2313,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.649: - version "1.3.681" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.681.tgz#facd915ae46a020e8be566a2ecdc0b9444439be9" - integrity sha512-W6uYvSUTHuyX2DZklIESAqx57jfmGjUkd7Z3RWqLdj9Mmt39ylhBuvFXlskQnvBHj0MYXIeQI+mjiwVddZLSvA== + version "1.3.693" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz#5089c506a925c31f93fcb173a003a22e341115dd" + integrity sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag== emoji-regex@^7.0.1: version "7.0.3" @@ -2484,10 +2499,10 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.0.0: - version "7.21.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.21.0.tgz#4ecd5b8c5b44f5dedc9b8a110b01bbfeb15d1c83" - integrity sha512-W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg== +eslint@^7.22.0: + version "7.22.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.22.0.tgz#07ecc61052fec63661a2cab6bd507127c07adc6f" + integrity sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.0" @@ -2506,7 +2521,7 @@ eslint@^7.0.0: file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" glob-parent "^5.0.0" - globals "^12.1.0" + globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" @@ -2514,7 +2529,7 @@ eslint@^7.0.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.20" + lodash "^4.17.21" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -2586,9 +2601,9 @@ events@^3.2.0: integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" + integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== dependencies: original "^1.0.0" @@ -2857,10 +2872,10 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== -flow-bin@^0.125.1: - version "0.125.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.125.1.tgz#7edbc71e7dc39ddef18086ef75c714bbf1c5917f" - integrity sha512-jEury9NTXylxQEOAXLWEE945BjBwYcMwwKVnb+5XORNwMQE7i5hQYF0ysYfsaaYOa7rW/U16rHBfwLuaZfWV7A== +flow-bin@^0.147.0: + version "0.147.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.147.0.tgz#5ac0152e6daabfa8a78950aa1d02aefa968c4300" + integrity sha512-4VwnpQGxFQHRo2AvWcHbVOD6wLunT8Tge/cZGSv9twAxLMGSOTop7KDToZI6M/yoGBzdHxQWBii426LupWlbog== follow-redirects@^1.0.0: version "1.13.3" @@ -3023,9 +3038,9 @@ glob-parent@^3.1.0: path-dirname "^1.0.0" glob-parent@^5.0.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -3058,6 +3073,13 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globals@^13.6.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.7.0.tgz#aed3bcefd80ad3ec0f0be2cf0c895110c0591795" + integrity sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA== + dependencies: + type-fest "^0.20.2" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -3672,10 +3694,10 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jasmine-core@^3.5.0, jasmine-core@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.6.0.tgz#491f3bb23941799c353ceb7a45b38a950ebc5a20" - integrity sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw== +jasmine-core@^3.6.0, jasmine-core@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.7.1.tgz#0401327f6249eac993d47bbfa18d4e8efacfb561" + integrity sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ== jest-worker@^26.6.2: version "26.6.2" @@ -3853,10 +3875,10 @@ karma-webpack@^5.0.0: minimatch "^3.0.4" webpack-merge "^4.1.5" -karma@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.1.1.tgz#a7539618cca0f2cbb26d5497120ec31fe340c2a1" - integrity sha512-vVDFxFGAsclgmFjZA/qGw5xqWdZIWxVD7xLyCukYUYd5xs/uGzYbXGOT5zOruVBQleKEmXIr4H2hzGCTn+M9Cg== +karma@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.2.0.tgz#5302ca36390b146f635b3427982afe0a94c72ff7" + integrity sha512-pCB8eNxGgdIdZeC885rbhZ/VyuOPNHUIDNL9EaaMf1NVzpvTjMO8a7zRTn51ZJhOOOxCSpalUdT1A8x76LyVqg== dependencies: body-parser "^1.19.0" braces "^3.0.2" @@ -3965,7 +3987,7 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.6.1: +lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.6.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5028,9 +5050,9 @@ retry@^0.12.0: integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= rfdc@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.2.0.tgz#9e9894258f48f284b43c3143c68070a4f373b949" - integrity sha512-ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== rimraf@^2.6.3: version "2.7.1" @@ -5663,9 +5685,9 @@ terser-webpack-plugin@^5.1.1: terser "^5.5.1" terser@^5.5.1: - version "5.6.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" - integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== + version "5.6.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" + integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -5772,6 +5794,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" @@ -5935,9 +5962,9 @@ uuid@^3.3.2, uuid@^3.4.0: integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== vary@^1, vary@~1.1.2: version "1.1.2" @@ -6074,10 +6101,10 @@ webpack-sources@^2.1.1: source-list-map "^2.0.1" source-map "^0.6.1" -webpack@^5.24.3: - version "5.24.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.24.3.tgz#6ec0f5059f8d7c7961075fa553cfce7b7928acb3" - integrity sha512-x7lrWZ7wlWAdyKdML6YPvfVZkhD1ICuIZGODE5SzKJjqI9A4SpqGTjGJTc6CwaHqn19gGaoOR3ONJ46nYsn9rw== +webpack@^5.27.2: + version "5.27.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.27.2.tgz#44442219e1469ebe00292703b848580faae03f07" + integrity sha512-brNF3N/EdvMzkaZ/Xzb8sqPn5Si3iw6meqCnmNFtcnkorZsFZCBFMa2ElpIMjx6sKWYsnUpBO2dnX+7xgj+mjg== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.46" @@ -6208,9 +6235,9 @@ ws@^6.2.1: async-limiter "~1.0.0" ws@^7.2.3, ws@~7.4.2: - version "7.4.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" - integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== y18n@^4.0.0: version "4.0.1" @@ -6241,9 +6268,9 @@ yargs-parser@^13.1.2: decamelize "^1.2.0" yargs-parser@^20.2.2: - version "20.2.6" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" - integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== + version "20.2.7" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" + integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== yargs@^13.3.2: version "13.3.2" From b127397202da57a112bb1227ff26043de71bbd33 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 22 Mar 2021 16:31:31 -0400 Subject: [PATCH 385/412] docs(CHANGELOG): fix some typos --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7c2d394..cd8eb515 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,7 @@ - Add `nodeRef`: - If running in React Strict mode, ReactDOM.findDOMNode() is deprecated. - Unfortunately, in order for to work properly, we need raw access + Unfortunately, in order for `` to work properly, we need raw access to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef` as in this example: ```js @@ -38,7 +38,7 @@ This can be used for arbitrarily nested components, so long as the ref ends up pointing to the actual child DOM node and not a custom component. Thanks to react-transition-group for the inspiration. - `nodeRef` is also available on . + `nodeRef` is also available on ``. - Remove "browser" field in "package.json": - There is nothing special in the browser build that is actually practical for modern use. The "browser" field, as defined in From 72a7660700faa72ac01a868e639b48fc59518209 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 15 Apr 2021 10:37:53 -0400 Subject: [PATCH 386/412] chore(pkg): update package.json github urls --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e0dc79c8..79ac1d0e 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "types": "./typings/index.d.ts", "repository": { "type": "git", - "url": "https://github.com/mzabriskie/react-draggable.git" + "url": "https://github.com/react-grid-layout/react-draggable.git" }, "keywords": [ "react", @@ -35,9 +35,9 @@ "author": "Matt Zabriskie", "license": "MIT", "bugs": { - "url": "https://github.com/mzabriskie/react-draggable/issues" + "url": "https://github.com/react-grid-layout/react-draggable/issues" }, - "homepage": "https://github.com/mzabriskie/react-draggable", + "homepage": "https://github.com/react-grid-layout/react-draggable", "devDependencies": { "@babel/cli": "^7.13.10", "@babel/core": "^7.13.10", From 22b061538d5985348b662dabd6569d547440b10d Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 2 Jun 2021 22:22:49 -0400 Subject: [PATCH 387/412] fix(getPrefix): ensure documentElement.style actually exists Fixes #574, #575 --- lib/utils/getPrefix.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/utils/getPrefix.js b/lib/utils/getPrefix.js index 0135798e..9d38a9c4 100644 --- a/lib/utils/getPrefix.js +++ b/lib/utils/getPrefix.js @@ -1,12 +1,14 @@ // @flow const prefixes = ['Moz', 'Webkit', 'O', 'ms']; export function getPrefix(prop: string='transform'): string { - // Checking specifically for 'window.document' is for pseudo-browser server-side - // environments that define 'window' as the global context. - // E.g. React-rails (see https://github.com/reactjs/react-rails/pull/84) - if (typeof window === 'undefined' || typeof window.document === 'undefined') return ''; - - const style = window.document.documentElement.style; + // Ensure we're running in an environment where there is actually a global + // `window` obj + if (typeof window === 'undefined') return ''; + + // If we're in a pseudo-browser server-side environment, this access + // path may not exist, so bail out if it doesn't. + const style = window.document?.documentElement?.style; + if (!style) return ''; if (prop in style) return ''; From 279ace8e3b16e2431a0ee9c2379e7fe6a4926682 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 20 Jul 2021 16:52:10 -0400 Subject: [PATCH 388/412] test(draggable): additional ref tests --- specs/draggable.spec.jsx | 49 ++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index bd683201..fbc60835 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -714,13 +714,14 @@ describe('react-draggable', function () { }); describe('draggable callbacks', function () { - it('should call back on drag', function () { + it('should call back on drag', function (done) { function onDrag(event, data) { assert(data.x === 100); assert(data.y === 100); assert(data.deltaX === 100); assert(data.deltaY === 100); assert(data.node === ReactDOM.findDOMNode(drag)); + done(); } drag = TestUtils.renderIntoDocument( @@ -732,11 +733,12 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); }); - it('should call back with correct dom node with nodeRef', function () { + it('should call back with correct dom node with nodeRef', function (done) { function onDrag(event, data) { // Being tricky here and installing the ref on the inner child, to ensure it's working // and not just falling back on ReactDOM.findDOMNode() assert(data.node === ReactDOM.findDOMNode(drag).firstChild); + done(); } const nodeRef = React.createRef(); drag = TestUtils.renderIntoDocument( @@ -751,12 +753,35 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); }); - it('should call back on drag, with values within the defined bounds', function(){ + it('should call back with correct dom node with nodeRef (forwardRef)', function (done) { + + const Component1 = React.forwardRef(function (props, ref) { + return
Nested component
; + }); + + function onDrag(event, data) { + assert(data.node === ReactDOM.findDOMNode(drag)); + assert(data.node.innerText === 'Nested component'); + done(); + } + const nodeRef = React.createRef(); + drag = TestUtils.renderIntoDocument( + + + + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); + + it('should call back on drag, with values within the defined bounds', function(done){ function onDrag(event, data) { assert(data.x === 90); assert(data.y === 90); assert(data.deltaX === 90); assert(data.deltaY === 90); + done(); } drag = TestUtils.renderIntoDocument( @@ -769,12 +794,13 @@ describe('react-draggable', function () { }); - it('should call back with offset left/top, not client', function () { + it('should call back with offset left/top, not client', function(done) { function onDrag(event, data) { assert(data.x === 100); assert(data.y === 100); assert(data.deltaX === 100); assert(data.deltaY === 100); + done(); } drag = TestUtils.renderIntoDocument( @@ -785,7 +811,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 200, 200, 300, 300); }); - it('should call back with correct position when parent element is 2x scaled', function() { + it('should call back with correct position when parent element is 2x scaled', function(done) { function onDrag(event, data) { // visually it will look like 100, because parent is 2x scaled assert(data.x === 50); @@ -793,6 +819,7 @@ describe('react-draggable', function () { assert(data.deltaX === 50); assert(data.deltaY === 50); assert(data.node === ReactDOM.findDOMNode(drag)); + done(); } drag = TestUtils.renderIntoDocument( @@ -804,7 +831,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); }); - it('should call back with correct position when parent element is 0.5x scaled', function() { + it('should call back with correct position when parent element is 0.5x scaled', function(done) { function onDrag(event, data) { // visually it will look like 100, because parent is 0.5x scaled assert(data.x === 200); @@ -812,6 +839,7 @@ describe('react-draggable', function () { assert(data.deltaX === 200); assert(data.deltaY === 200); assert(data.node === ReactDOM.findDOMNode(drag)); + done(); } drag = TestUtils.renderIntoDocument( @@ -857,13 +885,14 @@ describe('react-draggable', function () { }); describe('DraggableCore callbacks', function () { - it('should call back with node on drag', function () { + it('should call back with node on drag', function(done) { function onDrag(event, data) { assert(data.x === 100); assert(data.y === 100); assert(data.deltaX === 100); assert(data.deltaY === 100); assert(data.node === ReactDOM.findDOMNode(drag)); + done(); } drag = TestUtils.renderIntoDocument( @@ -875,7 +904,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); }); - it('should call back with correct position when parent element is 2x scaled', function() { + it('should call back with correct position when parent element is 2x scaled', function(done) { function onDrag(event, data) { // visually it will look like 100, because parent is 2x scaled assert(data.x === 50); @@ -883,6 +912,7 @@ describe('react-draggable', function () { assert(data.deltaX === 50); assert(data.deltaY === 50); assert(data.node === ReactDOM.findDOMNode(drag)); + done(); } drag = TestUtils.renderIntoDocument( @@ -894,7 +924,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); }); - it('should call back with correct position when parent element is 0.5x scaled', function() { + it('should call back with correct position when parent element is 0.5x scaled', function(done) { function onDrag(event, data) { // visually it will look like 100, because parent is 0.5x scaled assert(data.x === 200); @@ -902,6 +932,7 @@ describe('react-draggable', function () { assert(data.deltaX === 200); assert(data.deltaY === 200); assert(data.node === ReactDOM.findDOMNode(drag)); + done(); } drag = TestUtils.renderIntoDocument( From 781ef77c86be9486400da9837f43b96186166e38 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 20 Jul 2021 17:03:00 -0400 Subject: [PATCH 389/412] docs(nodeRef): add rich component example to readme --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 772ff368..50cfefd6 100644 --- a/README.md +++ b/README.md @@ -245,6 +245,19 @@ onStop: DraggableEventHandler, // This can be used for arbitrarily nested components, so long as the ref ends up // pointing to the actual child DOM node and not a custom component. // +// For rich components, you need to both forward the ref *and props* to the underlying DOM +// element. Props must be forwarded so that DOM event handlers can be attached. +// For example: +// +// const Component1 = React.forwardRef(function (props, ref) { +// return
Nested component
; +// }); +// +// const nodeRef = React.useRef(null); +// +// +// +// // Thanks to react-transition-group for the inspiration. // // `nodeRef` is also available on . From b4b692780d56a6f04239980905a08e0f2ea0fe33 Mon Sep 17 00:00:00 2001 From: Wojciech Maj Date: Thu, 26 Aug 2021 13:19:19 +0200 Subject: [PATCH 390/412] Replace classnames with clsx (#599) clsx is fully compatible with classnames API, is quickly gaining traction and is about 1/3rd smaller than classnames. --- lib/Draggable.js | 4 ++-- package.json | 2 +- yarn.lock | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index e42b47bb..cd726128 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -2,7 +2,7 @@ import * as React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; -import classNames from 'classnames'; +import clsx from 'clsx'; import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; @@ -375,7 +375,7 @@ class Draggable extends React.Component { } // Mark with class while dragging - const className = classNames((children.props.className || ''), defaultClassName, { + const className = clsx((children.props.className || ''), defaultClassName, { [defaultClassNameDragging]: this.state.dragging, [defaultClassNameDragged]: this.state.dragged }); diff --git a/package.json b/package.json index 79ac1d0e..3b748044 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "test" ], "dependencies": { - "classnames": "^2.2.5", + "clsx": "^1.1.1", "prop-types": "^15.6.0" }, "peerDependencies": { diff --git a/yarn.lock b/yarn.lock index ff334299..25c507f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1860,11 +1860,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@^2.2.5: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -1892,6 +1887,11 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" From c5c9af08ef06ed9dd7736be0fc018810e5d578be Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 26 Aug 2021 07:33:15 -0400 Subject: [PATCH 391/412] chore(dev): update devDeps --- .flowconfig | 3 - lib/utils/domFns.js | 8 +- lib/utils/shims.js | 1 + package.json | 44 +- specs/draggable.spec.jsx | 5 +- webpack.config.js | 17 +- yarn.lock | 3352 ++++++++++++++++++-------------------- 7 files changed, 1644 insertions(+), 1786 deletions(-) diff --git a/.flowconfig b/.flowconfig index bde9d703..8a48fd4c 100644 --- a/.flowconfig +++ b/.flowconfig @@ -6,8 +6,5 @@ lib/ index.js [options] -esproposal.class_instance_fields=enable -esproposal.class_static_fields=enable sharedmemory.heap_size=3221225472 -esproposal.optional_chaining=enable exact_by_default=true \ No newline at end of file diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index a4c50b90..65fe32fe 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -42,6 +42,7 @@ export function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode export function addEvent(el: ?Node, event: string, handler: Function, inputOptions?: Object): void { if (!el) return; const options = {capture: true, ...inputOptions}; + // $FlowIgnore[method-unbinding] if (el.addEventListener) { el.addEventListener(event, handler, options); } else if (el.attachEvent) { @@ -55,6 +56,7 @@ export function addEvent(el: ?Node, event: string, handler: Function, inputOptio export function removeEvent(el: ?Node, event: string, handler: Function, inputOptions?: Object): void { if (!el) return; const options = {capture: true, ...inputOptions}; + // $FlowIgnore[method-unbinding] if (el.removeEventListener) { el.removeEventListener(event, handler, options); } else if (el.detachEvent) { @@ -100,8 +102,12 @@ export function innerWidth(node: HTMLElement): number { return width; } +interface EventWithOffset { + clientX: number, clientY: number +} + // Get from offsetParent -export function offsetXYFromParent(evt: {clientX: number, clientY: number, ...}, offsetParent: HTMLElement, scale: number): ControlPosition { +export function offsetXYFromParent(evt: EventWithOffset, offsetParent: HTMLElement, scale: number): ControlPosition { const isBody = offsetParent === offsetParent.ownerDocument.body; const offsetParentRect = isBody ? {left: 0, top: 0} : offsetParent.getBoundingClientRect(); diff --git a/lib/utils/shims.js b/lib/utils/shims.js index 9de45993..e87b6341 100644 --- a/lib/utils/shims.js +++ b/lib/utils/shims.js @@ -7,6 +7,7 @@ export function findInArray(array: Array | TouchList, callback: Function): } export function isFunction(func: any): boolean %checks { + // $FlowIgnore[method-unbinding] return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]'; } diff --git a/package.json b/package.json index 3b748044..742731e8 100644 --- a/package.json +++ b/package.json @@ -39,27 +39,27 @@ }, "homepage": "https://github.com/react-grid-layout/react-draggable", "devDependencies": { - "@babel/cli": "^7.13.10", - "@babel/core": "^7.13.10", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-transform-flow-comments": "^7.8.3", - "@babel/preset-env": "^7.13.12", - "@babel/preset-flow": "^7.9.0", - "@babel/preset-react": "^7.9.4", - "@types/react": "^16.9.35", - "@types/react-dom": "^16.9.8", + "@babel/cli": "^7.14.8", + "@babel/core": "^7.15.0", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-transform-flow-comments": "^7.14.5", + "@babel/preset-env": "^7.15.0", + "@babel/preset-flow": "^7.14.5", + "@babel/preset-react": "^7.14.5", + "@types/react": "^17.0.19", + "@types/react-dom": "^17.0.9", "assert": "^2.0.0", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "babel-plugin-transform-inline-environment-variables": "^0.4.3", - "eslint": "^7.22.0", - "eslint-plugin-react": "^7.20.0", - "flow-bin": "^0.147.0", - "jasmine-core": "^3.7.1", - "karma": "^6.2.0", + "eslint": "^7.32.0", + "eslint-plugin-react": "^7.24.0", + "flow-bin": "^0.158.0", + "jasmine-core": "^3.9.0", + "karma": "^6.3.4", "karma-chrome-launcher": "^3.1.0", "karma-cli": "2.0.0", - "karma-firefox-launcher": "^2.1.0", + "karma-firefox-launcher": "^2.1.1", "karma-ie-launcher": "^1.0.0", "karma-jasmine": "^4.0.1", "karma-phantomjs-launcher": "^1.0.4", @@ -69,17 +69,17 @@ "phantomjs-prebuilt": "^2.1.16", "pre-commit": "^1.2.2", "process": "^0.11.10", - "puppeteer": "^3.1.0", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-frame-component": "^4.1.2", "react-test-renderer": "^16.13.1", - "semver": "^7.3.2", + "puppeteer": "^10.2.0", + "react-frame-component": "^5.1.0", + "semver": "^7.3.5", "static-server": "^3.0.0", - "typescript": "^3.9.3", - "webpack": "^5.27.2", - "webpack-cli": "^4.5.0", - "webpack-dev-server": "^3.11.0" + "typescript": "^4.3.5", + "webpack": "^5.51.1", + "webpack-cli": "^4.8.0", + "webpack-dev-server": "^4.0.0" }, "resolutions": { "minimist": "^1.2.5" diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index fbc60835..23f2f1c9 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -457,9 +457,8 @@ describe('react-draggable', function () { setTimeout(function checkIframe() { const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; - if (!iframeDoc) return setTimeout(checkIframe, 50); - const body = iframeDoc.body; - const node = body.querySelector('.react-draggable'); + if (!(iframeDoc && iframeDoc.body)) return setTimeout(checkIframe, 50); + const node = iframeDoc.body.querySelector('.react-draggable'); if (!node) return setTimeout(checkIframe, 50); simulateMovementFromTo(node, 0, 0, 100, 100); diff --git a/webpack.config.js b/webpack.config.js index ed4dd322..1b0af4f0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -15,13 +15,18 @@ module.exports = (env, argv) => ({ path: path.resolve(__dirname, 'build', 'web'), }, devServer: { - contentBase: '.', hot: true, - open: true, - inline: false, - openPage: 'example/index.html', - disableHostCheck: true, - writeToDisk: true, + open: 'example/index.html', + client: { + overlay: true, + }, + devMiddleware: { + // disableHostCheck: true, + writeToDisk: true, + }, + static: { + directory: '.', + } }, devtool: 'source-map', externals: { diff --git a/yarn.lock b/yarn.lock index 25c507f4..b80eb69e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,21 +2,20 @@ # yarn lockfile v1 -"@babel/cli@^7.13.10": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.13.10.tgz#3a9254cbe806639c8ca4ebd49ebe54b4267b88c9" - integrity sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ== +"@babel/cli@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.8.tgz#fac73c0e2328a8af9fd3560c06b096bfa3730933" + integrity sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.19" make-dir "^2.1.0" slash "^2.0.0" source-map "^0.5.0" optionalDependencies: - "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents" + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.2" chokidar "^3.4.0" "@babel/code-frame@7.12.11": @@ -26,97 +25,97 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.8": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1" - integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== - -"@babel/core@^7.13.10": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" - integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.9" - "@babel/helper-compilation-targets" "^7.13.10" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helpers" "^7.13.10" - "@babel/parser" "^7.13.10" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== + +"@babel/core@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.15.0" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.1.2" - lodash "^4.17.19" semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.12.13", "@babel/generator@^7.13.0", "@babel/generator@^7.13.9": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" - integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== +"@babel/generator@^7.14.5", "@babel/generator@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== dependencies: - "@babel/types" "^7.13.0" + "@babel/types" "^7.15.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== +"@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.14.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.8": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz#1310a1678cb8427c07a753750da4f8ce442bdd0c" - integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" + integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" + "@babel/compat-data" "^7.15.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.13.0": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" - integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== +"@babel/helper-create-class-features-plugin@^7.14.5": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" + integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.0" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-split-export-declaration" "^7.14.5" -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.14.5" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e" - integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -127,277 +126,295 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" - integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-hoist-variables@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" - integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== - dependencies: - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" - integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" - integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-transforms@^7.13.0": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz#600e58350490828d82282631a1422268e982ba96" - integrity sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-remap-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" - integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" - integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" - -"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" - integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - -"@babel/helper-wrap-function@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" - integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + "@babel/types" "^7.14.5" + +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" -"@babel/helpers@^7.13.10": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" - integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" - integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" +"@babel/helper-member-expression-to-functions@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" + integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== + dependencies: + "@babel/types" "^7.15.0" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" + integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.9" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" + integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== + dependencies: + "@babel/types" "^7.14.8" + +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helpers@^7.14.8": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.10", "@babel/parser@^7.7.0": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.12.tgz#ba320059420774394d3b0c0233ba40e4250b81d1" - integrity sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw== +"@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.7.0": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" - integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/plugin-proposal-async-generator-functions@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" - integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== +"@babel/plugin-proposal-async-generator-functions@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" + integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" - integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== +"@babel/plugin-proposal-class-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" - integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" - integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" - integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== +"@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" - integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" - integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" - integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" - integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== +"@babel/plugin-proposal-object-rest-spread@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-parameters" "^7.14.5" -"@babel/plugin-proposal-optional-catch-binding@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" - integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" - integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== +"@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" - integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -413,6 +430,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" @@ -427,12 +451,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz#5df9962503c0a9c918381c929d51d4d6949e7e86" - integrity sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA== +"@babel/plugin-syntax-flow@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz#2ff654999497d7d7d142493260005263731da180" + integrity sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -441,12 +465,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" - integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== +"@babel/plugin-syntax-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -490,336 +514,346 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" - integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" - integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoped-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" -"@babel/plugin-transform-block-scoping@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" - integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-classes@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" - integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== +"@babel/plugin-transform-block-scoping@^7.14.5": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" + integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" + integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" - integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-destructuring@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" - integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== +"@babel/plugin-transform-destructuring@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-duplicate-keys@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-exponentiation-operator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-flow-comments@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.12.13.tgz#b6f0de89ac4955572913f4af82f6b8ddbff38bf1" - integrity sha512-o4Z7Mw9KvrfAxBwSr+Ia+E0+LLb6ZzDXQTsJb628ejXuvvNoCDyu3FLBcz2/W8B7q/MOzm6d6pbNM6ur/aegMQ== +"@babel/plugin-transform-flow-comments@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.14.5.tgz#295d60687828be3e2873e5628e0c8d6030710067" + integrity sha512-VAme+wF0d2PtCsW9P4UQ5laJ9KzYBXYOEEe1/16dlxM3d5oRx8I2u6hXQaOCzFqhciAz9HsgHvqMVT0JVI4n7Q== dependencies: - "@babel/generator" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-flow" "^7.12.13" + "@babel/generator" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-flow" "^7.14.5" -"@babel/plugin-transform-flow-strip-types@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz#58177a48c209971e8234e99906cb6bd1122addd3" - integrity sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg== +"@babel/plugin-transform-flow-strip-types@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz#0dc9c1d11dcdc873417903d6df4bed019ef0f85e" + integrity sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-flow" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-flow" "^7.14.5" -"@babel/plugin-transform-for-of@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" - integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== +"@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-member-expression-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-modules-amd@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" - integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" - integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== +"@babel/plugin-transform-modules-commonjs@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" + integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" - integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== dependencies: - "@babel/helper-hoist-variables" "^7.13.0" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" - integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" + integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" -"@babel/plugin-transform-new-target@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-object-super@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" -"@babel/plugin-transform-parameters@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" - integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== +"@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-react-display-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" - integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== +"@babel/plugin-transform-react-display-name@^7.14.5": + version "7.15.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz#6aaac6099f1fcf6589d35ae6be1b6e10c8c602b9" + integrity sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-react-jsx-development@^7.12.12": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" - integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== +"@babel/plugin-transform-react-jsx-development@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af" + integrity sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ== dependencies: - "@babel/plugin-transform-react-jsx" "^7.12.17" + "@babel/plugin-transform-react-jsx" "^7.14.5" -"@babel/plugin-transform-react-jsx@^7.12.13", "@babel/plugin-transform-react-jsx@^7.12.17": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" - integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== +"@babel/plugin-transform-react-jsx@^7.14.5": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c" + integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.13.12" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx" "^7.14.5" + "@babel/types" "^7.14.9" -"@babel/plugin-transform-react-pure-annotations@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" - integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== +"@babel/plugin-transform-react-pure-annotations@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc" + integrity sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-regenerator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" - integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-shorthand-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-spread@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" - integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-template-literals@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" - integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-typeof-symbol@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-escapes@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/preset-env@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.12.tgz#6dff470478290582ac282fb77780eadf32480237" - integrity sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA== - dependencies: - "@babel/compat-data" "^7.13.12" - "@babel/helper-compilation-targets" "^7.13.10" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.13.8" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-dynamic-import" "^7.13.8" - "@babel/plugin-proposal-export-namespace-from" "^7.12.13" - "@babel/plugin-proposal-json-strings" "^7.13.8" - "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-numeric-separator" "^7.12.13" - "@babel/plugin-proposal-object-rest-spread" "^7.13.8" - "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" + integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.9" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -829,54 +863,56 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.12.13" - "@babel/plugin-transform-arrow-functions" "^7.13.0" - "@babel/plugin-transform-async-to-generator" "^7.13.0" - "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.12.13" - "@babel/plugin-transform-classes" "^7.13.0" - "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.0" - "@babel/plugin-transform-dotall-regex" "^7.12.13" - "@babel/plugin-transform-duplicate-keys" "^7.12.13" - "@babel/plugin-transform-exponentiation-operator" "^7.12.13" - "@babel/plugin-transform-for-of" "^7.13.0" - "@babel/plugin-transform-function-name" "^7.12.13" - "@babel/plugin-transform-literals" "^7.12.13" - "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.13.0" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.13.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" - "@babel/plugin-transform-new-target" "^7.12.13" - "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.13.0" - "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.12.13" - "@babel/plugin-transform-reserved-words" "^7.12.13" - "@babel/plugin-transform-shorthand-properties" "^7.12.13" - "@babel/plugin-transform-spread" "^7.13.0" - "@babel/plugin-transform-sticky-regex" "^7.12.13" - "@babel/plugin-transform-template-literals" "^7.13.0" - "@babel/plugin-transform-typeof-symbol" "^7.12.13" - "@babel/plugin-transform-unicode-escapes" "^7.12.13" - "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.9" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.15.0" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.12" - babel-plugin-polyfill-corejs2 "^0.1.4" - babel-plugin-polyfill-corejs3 "^0.1.3" - babel-plugin-polyfill-regenerator "^0.1.2" - core-js-compat "^3.9.0" + "@babel/types" "^7.15.0" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.16.0" semver "^6.3.0" -"@babel/preset-flow@^7.9.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.12.13.tgz#71ee7fe65a95b507ac12bcad65a4ced27d8dfc3e" - integrity sha512-gcEjiwcGHa3bo9idURBp5fmJPcyFPOszPQjztXrOjUE2wWVqc6fIVJPgWPIQksaQ5XZ2HWiRsf2s1fRGVjUtVw== +"@babel/preset-flow@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.14.5.tgz#a1810b0780c8b48ab0bece8e7ab8d0d37712751c" + integrity sha512-pP5QEb4qRUSVGzzKx9xqRuHUrM/jEzMqdrZpdMA+oUCRgd5zM1qGr5y5+ZgAL/1tVv1H0dyk5t4SKJntqyiVtg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-transform-flow-strip-types" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-flow-strip-types" "^7.14.5" "@babel/preset-modules@^0.1.4": version "0.1.4" @@ -889,16 +925,17 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.9.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.13.tgz#5f911b2eb24277fa686820d5bd81cad9a0602a0a" - integrity sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== +"@babel/preset-react@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c" + integrity sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-transform-react-display-name" "^7.12.13" - "@babel/plugin-transform-react-jsx" "^7.12.13" - "@babel/plugin-transform-react-jsx-development" "^7.12.12" - "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-react-display-name" "^7.14.5" + "@babel/plugin-transform-react-jsx" "^7.14.5" + "@babel/plugin-transform-react-jsx-development" "^7.14.5" + "@babel/plugin-transform-react-pure-annotations" "^7.14.5" "@babel/runtime@^7.8.4": version "7.13.10" @@ -907,37 +944,36 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.7.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" - integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.0" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.0" - "@babel/types" "^7.13.0" +"@babel/template@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0", "@babel/traverse@^7.7.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" + integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.19" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz#edbf99208ef48852acdff1c8a681a1e4ade580cd" - integrity sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA== +"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" + "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" "@discoveryjs/json-ext@^0.5.0": @@ -945,30 +981,44 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== -"@eslint/eslintrc@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" - integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" espree "^7.3.0" - globals "^12.1.0" + globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents": - version "2.1.8-no-fsevents" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b" - integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.2": + version "2.1.8-no-fsevents.2" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz#e324c0a247a5567192dd7180647709d7e2faf94b" + integrity sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg== dependencies: anymatch "^2.0.0" async-each "^1.0.1" braces "^2.3.2" - glob-parent "^3.1.0" + glob-parent "^5.1.2" inherits "^2.0.3" is-binary-path "^1.0.0" is-glob "^4.0.0" @@ -977,6 +1027,27 @@ readdirp "^2.2.1" upath "^1.1.1" +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@types/component-emitter@^1.2.10": version "1.2.10" resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" @@ -1008,28 +1079,22 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.46": - version "0.0.46" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" - integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== +"@types/estree@*", "@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== +"@types/http-proxy@^1.17.5": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" + integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== dependencies: - "@types/minimatch" "*" "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/node@*", "@types/node@>=10.0.0": version "14.14.35" @@ -1041,22 +1106,27 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/react-dom@^16.9.8": - version "16.9.11" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.11.tgz#752e223a1592a2c10f2668b215a0e0667f4faab1" - integrity sha512-3UuR4MoWf5spNgrG6cwsmT9DdRghcR4IDFOzNZ6+wcmacxkFykcb5ji0nNVm9ckBT4BCxvCrJJbM4+EYsEEVIg== +"@types/react-dom@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" + integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== dependencies: - "@types/react" "^16" + "@types/react" "*" -"@types/react@^16", "@types/react@^16.9.35": - version "16.14.5" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.5.tgz#2c39b5cadefaf4829818f9219e5e093325979f4d" - integrity sha512-YRRv9DNZhaVTVRh9Wmmit7Y0UFhEVqXqCSw3uazRWMxa2x85hWQZ5BN24i7GXZbaclaLXEcodEeIHsjBA8eAMw== +"@types/react@*", "@types/react@^17.0.19": + version "17.0.19" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.19.tgz#8f2a85e8180a43b57966b237d26a29481dacc991" + integrity sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" +"@types/retry@^0.12.0": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== + "@types/scheduler@*": version "0.16.1" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" @@ -1069,143 +1139,143 @@ dependencies: "@types/node" "*" -"@webassemblyjs/ast@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" - integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== dependencies: - "@webassemblyjs/helper-numbers" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" -"@webassemblyjs/floating-point-hex-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" - integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== -"@webassemblyjs/helper-api-error@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" - integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== -"@webassemblyjs/helper-buffer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" - integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== -"@webassemblyjs/helper-numbers@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" - integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" - integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== -"@webassemblyjs/helper-wasm-section@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" - integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" -"@webassemblyjs/ieee754@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" - integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" - integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" - integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== - -"@webassemblyjs/wasm-edit@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" - integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/helper-wasm-section" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-opt" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - "@webassemblyjs/wast-printer" "1.11.0" - -"@webassemblyjs/wasm-gen@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" - integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wasm-opt@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" - integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - -"@webassemblyjs/wasm-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" - integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wast-printer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" - integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz#241aecfbdc715eee96bed447ed402e12ec171935" - integrity sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ== +"@webpack-cli/configtest@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa" + integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ== -"@webpack-cli/info@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz#ef3c0cd947a1fa083e174a59cb74e0b6195c236c" - integrity sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ== +"@webpack-cli/info@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b" + integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz#2730c770f5f1f132767c63dcaaa4ec28f8c56a6c" - integrity sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw== +"@webpack-cli/serve@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.2.tgz#ea584b637ff63c5a477f6f21604b5a205b72c9ec" + integrity sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -1225,6 +1295,11 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" +acorn-import-assertions@^1.7.6: + version "1.7.6" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" + integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" @@ -1235,27 +1310,32 @@ acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4: - version "8.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" - integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== +acorn@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== -agent-base@5: - version "5.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" - integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" -ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: +ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1265,27 +1345,22 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^7.0.2: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.2.3.tgz#ca78d1cf458d7d36d1c3fa0794dd143406db5772" - integrity sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw== +ajv@^8.0.1: + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-html@0.0.7: +ansi-html@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= @@ -1295,27 +1370,22 @@ ansi-regex@^0.2.0, ansi-regex@^0.2.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.0.tgz#ecc7f5933cbe5ac7b33e209a5ff409ab1669c6b2" + integrity sha512-tAaOSrWCHF+1Ear1Z4wnJCXA9GGox4K6Ic85a5qalES2aeEwQGr7UC93mwef49536PkCYjzkp0zIxfFvexJ6zQ== + ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1337,10 +1407,10 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1382,7 +1452,7 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.1, array-includes@^3.1.2: +array-includes@^3.1.2, array-includes@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== @@ -1393,24 +1463,17 @@ array-includes@^3.1.1, array-includes@^3.1.2: get-intrinsic "^1.1.1" is-string "^1.0.5" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flatmap@^1.2.3: +array.prototype.flatmap@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== @@ -1457,11 +1520,6 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -1525,29 +1583,29 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-polyfill-corejs2@^0.1.4: - version "0.1.10" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz#a2c5c245f56c0cac3dbddbf0726a46b24f0f81d1" - integrity sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA== +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== dependencies: - "@babel/compat-data" "^7.13.0" - "@babel/helper-define-polyfill-provider" "^0.1.5" + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.1.3: - version "0.1.7" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" - integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.1.5" - core-js-compat "^3.8.1" + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" -babel-plugin-polyfill-regenerator@^0.1.2: - version "0.1.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz#0fe06a026fe0faa628ccc8ba3302da0a6ce02f3f" - integrity sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg== +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.1.5" + "@babel/helper-define-polyfill-provider" "^0.2.2" babel-plugin-transform-inline-environment-variables@^0.4.3: version "0.4.3" @@ -1614,13 +1672,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -1682,23 +1733,23 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.2, braces@~3.0.2: +braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" - integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== +browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.16.8: + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== dependencies: - caniuse-lite "^1.0.30001181" - colorette "^1.2.1" - electron-to-chromium "^1.3.649" + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" escalade "^3.1.1" - node-releases "^1.1.70" + node-releases "^1.1.75" buffer-crc32@~0.2.3: version "0.2.13" @@ -1761,15 +1812,10 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001181: - version "1.0.30001204" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz#256c85709a348ec4d175e847a3b515c66e79f2aa" - integrity sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ== +caniuse-lite@^1.0.30001251: + version "1.0.30001252" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" + integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== caseless@~0.12.0: version "0.12.0" @@ -1804,39 +1850,20 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.0, chokidar@^3.4.2: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== +chokidar@^3.4.0, chokidar@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.3.2" chownr@^1.1.1: version "1.1.4" @@ -1860,14 +1887,10 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cliui@^7.0.2: version "7.0.4" @@ -1924,10 +1947,10 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== colors@^1.4.0: version "1.4.0" @@ -2055,12 +2078,12 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.8.1, core-js-compat@^3.9.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455" - integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== +core-js-compat@^3.14.0, core-js-compat@^3.16.0: + version "3.16.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.3.tgz#ae12a6e20505a1d79fbd16b6689dfc77fc989114" + integrity sha512-A/OtSfSJQKLAFRVd4V0m6Sep9lPdjD8bpN8v3tCCGwE0Tmh0hOiVDm9tw6mXmWOKOSZIyr3EkywPo84cJjGvIQ== dependencies: - browserslist "^4.16.3" + browserslist "^4.16.8" semver "7.0.0" core-util-is@1.0.2, core-util-is@~1.0.0: @@ -2085,17 +2108,6 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -2139,25 +2151,20 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.3.1: +debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" -debug@^3.1.1, debug@^3.2.6: +debug@^3.1.1: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -2180,13 +2187,17 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== +default-gateway@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" + execa "^5.0.0" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== define-properties@^1.1.3: version "1.1.3" @@ -2217,18 +2228,19 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" +del@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" + integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" delayed-stream@~1.0.0: version "1.0.0" @@ -2250,11 +2262,23 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== +devtools-protocol@0.0.901419: + version "0.0.901419" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.901419.tgz#79b5459c48fe7e1c5563c02bd72f8fec3e0cebcd" + integrity sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ== + di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2312,15 +2336,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.649: - version "1.3.693" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz#5089c506a925c31f93fcb173a003a22e341115dd" - integrity sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +electron-to-chromium@^1.3.811: + version "1.3.818" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.818.tgz#32ed024fa8316e5d469c96eecbea7d2463d80085" + integrity sha512-c/Z9gIr+jDZAR9q+mn40hEc1NharBT+8ejkarjbCDnBNFviI6hvcC5j2ezkAXru//bTnQp5n6iPi0JA83Tla1Q== emoji-regex@^8.0.0: version "8.0.0" @@ -2364,15 +2383,15 @@ engine.io@~4.1.0: engine.io-parser "~4.0.0" ws "~7.4.2" -enhanced-resolve@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" - integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== +enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5, enquirer@^2.3.6: +enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -2389,17 +2408,10 @@ envinfo@^7.7.3: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== -errno@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -2407,21 +2419,22 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: get-intrinsic "^1.1.1" has "^1.0.3" has-symbols "^1.0.2" + internal-slot "^1.0.3" is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.11.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" + unbox-primitive "^1.0.1" -es-module-lexer@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" - integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== +es-module-lexer@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" + integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== es-to-primitive@^1.2.1: version "1.2.1" @@ -2457,24 +2470,30 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-plugin-react@^7.20.0: - version "7.22.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz#3d1c542d1d3169c45421c1215d9470e341707269" - integrity sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-plugin-react@^7.24.0: + version "7.24.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz#eadedfa351a6f36b490aa17f4fa9b14e842b9eb4" + integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q== dependencies: - array-includes "^3.1.1" - array.prototype.flatmap "^1.2.3" + array-includes "^3.1.3" + array.prototype.flatmap "^1.2.4" doctrine "^2.1.0" has "^1.0.3" jsx-ast-utils "^2.4.1 || ^3.0.0" - object.entries "^1.1.2" - object.fromentries "^2.0.2" - object.values "^1.1.1" + minimatch "^3.0.4" + object.entries "^1.1.4" + object.fromentries "^2.0.4" + object.values "^1.1.4" prop-types "^15.7.2" - resolve "^1.18.1" - string.prototype.matchall "^4.0.2" + resolve "^2.0.0-next.3" + string.prototype.matchall "^4.0.5" -eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -2499,28 +2518,31 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.22.0: - version "7.22.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.22.0.tgz#07ecc61052fec63661a2cab6bd507127c07adc6f" - integrity sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg== +eslint@^7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.0" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" + escape-string-regexp "^4.0.0" eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^2.0.0" espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" + fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" + glob-parent "^5.1.2" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" @@ -2529,7 +2551,7 @@ eslint@^7.22.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.21" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -2538,7 +2560,7 @@ eslint@^7.22.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.4" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -2600,26 +2622,6 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== - dependencies: - original "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" @@ -2718,17 +2720,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.6.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -extract-zip@^2.0.0: +extract-zip@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== @@ -2739,6 +2731,16 @@ extract-zip@^2.0.0: optionalDependencies: "@types/yauzl" "^2.9.1" +extract-zip@^1.6.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2749,11 +2751,22 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-glob@^3.1.1: + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -2769,6 +2782,13 @@ fastest-levenshtein@^1.0.12: resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== +fastq@^1.6.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + dependencies: + reusify "^1.0.4" + faye-websocket@^0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" @@ -2795,11 +2815,6 @@ file-size@0.0.5: resolved "https://registry.yarnpkg.com/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" integrity sha1-BX1Dw6Ptc12j+Q1gUqs4Dx5tXjs= -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -2839,13 +2854,6 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2872,10 +2880,10 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== -flow-bin@^0.147.0: - version "0.147.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.147.0.tgz#5ac0152e6daabfa8a78950aa1d02aefa968c4300" - integrity sha512-4VwnpQGxFQHRo2AvWcHbVOD6wLunT8Tge/cZGSv9twAxLMGSOTop7KDToZI6M/yoGBzdHxQWBii426LupWlbog== +flow-bin@^0.158.0: + version "0.158.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.158.0.tgz#0a09763d41eb8ec7135ced6a3b9f8fa370a393d8" + integrity sha512-Gk5md8XTwk/M+J5M+rFyS1LJfFen6ldY60jM9+meWixlKf4b0vwdoUO8R7oo471pze+GY+blrnskUeqLDxFJfg== follow-redirects@^1.0.0: version "1.13.3" @@ -2946,6 +2954,11 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" @@ -2956,15 +2969,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.3.1: +fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -2984,7 +2989,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -2998,13 +3003,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -3029,15 +3027,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0, glob-parent@~5.1.0: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -3049,10 +3039,10 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^7.0.0, glob@^7.1.3, glob@^7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3066,35 +3056,29 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.6.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.7.0.tgz#aed3bcefd80ad3ec0f0be2cf0c895110c0591795" - integrity sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA== +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== dependencies: type-fest "^0.20.2" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= +globby@^11.0.1: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== handle-thing@^2.0.0: version "2.0.1" @@ -3121,7 +3105,7 @@ has-ansi@^0.1.0: dependencies: ansi-regex "^0.2.0" -has-bigints@^1.0.0: +has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== @@ -3136,11 +3120,18 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -3197,10 +3188,10 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-entities@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" + integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== http-deceiver@^1.2.7: version "1.2.7" @@ -3244,17 +3235,18 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== +http-proxy-middleware@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz#7ef3417a479fb7666a571e09966c66a39bd2c15f" + integrity sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg== dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" -http-proxy@^1.17.0, http-proxy@^1.18.1: +http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -3272,12 +3264,12 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-proxy-agent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" - integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== +https-proxy-agent@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== dependencies: - agent-base "5" + agent-base "6" debug "4" human-signals@^2.1.0: @@ -3302,6 +3294,11 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -3310,14 +3307,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -3331,6 +3320,11 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3349,13 +3343,15 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== +internal-ip@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-6.2.0.tgz#d5541e79716e406b74ac6b07b856ef18dc1621c1" + integrity sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" + default-gateway "^6.0.0" + ipaddr.js "^1.9.1" + is-ip "^3.1.0" + p-event "^4.2.0" internal-slot@^1.0.3: version "1.0.3" @@ -3371,25 +3367,25 @@ interpret@^2.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== -ip@^1.1.0, ip@^1.1.5: +ip@^1.1.0: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: +ipaddr.js@1.9.1, ipaddr.js@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== is-accessor-descriptor@^0.1.6: version "0.1.6" @@ -3492,10 +3488,10 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-docker@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" - integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" @@ -3509,16 +3505,11 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -3529,13 +3520,6 @@ is-generator-function@^1.0.7: resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" @@ -3543,6 +3527,13 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -3573,24 +3564,20 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-cwd@^2.0.0: +is-path-cwd@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" @@ -3599,15 +3586,15 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== +is-regex@^1.0.4, is-regex@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.1" + has-tostringtag "^1.0.0" -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -3617,10 +3604,12 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" @@ -3650,11 +3639,6 @@ is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -3667,10 +3651,10 @@ isarray@1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isbinaryfile@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" - integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== +isbinaryfile@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" + integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== isexe@^2.0.0: version "2.0.0" @@ -3694,19 +3678,19 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jasmine-core@^3.6.0, jasmine-core@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.7.1.tgz#0401327f6249eac993d47bbfa18d4e8efacfb561" - integrity sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ== +jasmine-core@^3.6.0, jasmine-core@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.9.0.tgz#09a3c8169fe98ec69440476d04a0e4cb4d59e452" + integrity sha512-Tv3kVbPCGVrjsnHBZ38NsPU3sDOtNa0XmbG2baiyJqdb5/SPpDO6GVwJYtUryl6KB4q1Ssckwg612ES9Z0dreQ== -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== +jest-worker@^27.0.2: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== dependencies: "@types/node" "*" merge-stream "^2.0.0" - supports-color "^7.0.0" + supports-color "^8.0.0" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -3766,11 +3750,6 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -3831,10 +3810,10 @@ karma-cli@2.0.0: dependencies: resolve "^1.3.3" -karma-firefox-launcher@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.0.tgz#d0d328c93dfcf9b46f1ac83b4bb32f43aadb2050" - integrity sha512-dkiyqN2R6fCWt78rciOXJLFDWcQ7QEQi++HgebPJlw1y0ycDjGNDHuSrhdh48QG02fzZKK20WHFWVyBZ6CPngg== +karma-firefox-launcher@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.1.tgz#6457226f8e4f091b664cef79bb5d39bf1e008765" + integrity sha512-VzDMgPseXak9DtfyE1O5bB2BwsMy1zzO1kUxVW1rP0yhC4tDNJ0p3JoFdzvrK4QqVzdqUMa9Rx9YzkdFp8hz3Q== dependencies: is-wsl "^2.2.0" which "^2.0.1" @@ -3875,33 +3854,33 @@ karma-webpack@^5.0.0: minimatch "^3.0.4" webpack-merge "^4.1.5" -karma@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.2.0.tgz#5302ca36390b146f635b3427982afe0a94c72ff7" - integrity sha512-pCB8eNxGgdIdZeC885rbhZ/VyuOPNHUIDNL9EaaMf1NVzpvTjMO8a7zRTn51ZJhOOOxCSpalUdT1A8x76LyVqg== +karma@^6.3.4: + version "6.3.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.3.4.tgz#359899d3aab3d6b918ea0f57046fd2a6b68565e6" + integrity sha512-hbhRogUYIulfkBTZT7xoPrCYhRBnBoqbbL4fszWD0ReFGUxU+LYBr3dwKdAluaDQ/ynT9/7C+Lf7pPNW4gSx4Q== dependencies: body-parser "^1.19.0" braces "^3.0.2" - chokidar "^3.4.2" + chokidar "^3.5.1" colors "^1.4.0" connect "^3.7.0" di "^0.0.1" dom-serialize "^2.2.1" - glob "^7.1.6" - graceful-fs "^4.2.4" + glob "^7.1.7" + graceful-fs "^4.2.6" http-proxy "^1.18.1" - isbinaryfile "^4.0.6" - lodash "^4.17.19" - log4js "^6.2.1" - mime "^2.4.5" + isbinaryfile "^4.0.8" + lodash "^4.17.21" + log4js "^6.3.0" + mime "^2.5.2" minimatch "^3.0.4" qjobs "^1.2.0" range-parser "^1.2.1" rimraf "^3.0.2" socket.io "^3.1.0" source-map "^0.6.1" - tmp "0.2.1" - ua-parser-js "^0.7.23" + tmp "^0.2.1" + ua-parser-js "^0.7.28" yargs "^16.1.1" kew@^0.7.0: @@ -3909,11 +3888,6 @@ kew@^0.7.0: resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s= -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -3967,14 +3941,6 @@ loader-utils@^1.4.0: emojis-list "^3.0.0" json5 "^1.0.1" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3982,17 +3948,32 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.6.1: +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash@^4.0.1, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.6.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log4js@^6.2.1: +log4js@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== @@ -4003,11 +3984,6 @@ log4js@^6.2.1: rfdc "^1.1.4" streamroller "^2.2.4" -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== - loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -4045,6 +4021,13 @@ make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -4062,13 +4045,20 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= +mem@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" + map-age-cleaner "^0.1.3" + mimic-fn "^3.1.0" + +memfs@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" + integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== + dependencies: + fs-monkey "1.0.3" merge-descriptors@1.0.1: version "1.0.1" @@ -4080,6 +4070,11 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -4104,24 +4099,32 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -mime-db@1.46.0, "mime-db@>= 1.43.0 < 2": - version "1.46.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.29" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== +mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== dependencies: - mime-db "1.46.0" + mime-db "1.49.0" mime@1.6.0, mime@^1.2.11: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.0.3, mime@^2.4.4, mime@^2.4.5: +mime@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== @@ -4131,6 +4134,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4156,11 +4164,6 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -4201,11 +4204,6 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -4238,20 +4236,20 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-releases@^1.1.70: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== normalize-path@^2.1.1: version "2.1.1" @@ -4265,13 +4263,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -4284,7 +4275,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -4298,10 +4289,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== object-is@^1.0.1: version "1.1.5" @@ -4333,17 +4324,16 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" - integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== +object.entries@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" + es-abstract "^1.18.2" -object.fromentries@^2.0.2: +object.fromentries@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== @@ -4360,15 +4350,14 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== +object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" + es-abstract "^1.18.2" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" @@ -4401,12 +4390,14 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== +open@^8.0.9: + version "8.2.1" + resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" + integrity sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ== dependencies: - is-wsl "^1.1.0" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" optionator@^0.9.1: version "0.9.1" @@ -4420,24 +4411,29 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-event@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -4451,13 +4447,6 @@ p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -4465,17 +4454,27 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== +p-retry@^4.5.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" + integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== dependencies: - retry "^0.12.0" + "@types/retry" "^0.12.0" + retry "^0.13.1" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" p-try@^2.0.0: version "2.2.0" @@ -4499,16 +4498,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4519,16 +4508,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -4544,6 +4523,11 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -4569,15 +4553,10 @@ phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: request-progress "^2.0.1" which "^1.2.10" -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^4.0.1: version "4.0.1" @@ -4596,21 +4575,14 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@4.2.0, pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -portfinder@^1.0.26: +portfinder@^1.0.28: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== @@ -4648,12 +4620,17 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +progress@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" + integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== + progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= -progress@^2.0.0, progress@^2.0.1: +progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -4675,16 +4652,11 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.1" -proxy-from-env@^1.0.0: +proxy-from-env@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -4713,21 +4685,23 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.3.0.tgz#95839af9fdc0aa4de7e5ee073a4c0adeb9e2d3d7" - integrity sha512-23zNqRltZ1PPoK28uRefWJ/zKb5Jhnzbbwbpcna2o5+QMn17F0khq5s1bdH3vPlyj+J36pubccR8wiNA/VE0Vw== - dependencies: - debug "^4.1.0" - extract-zip "^2.0.0" - https-proxy-agent "^4.0.0" - mime "^2.0.3" - progress "^2.0.1" - proxy-from-env "^1.0.0" - rimraf "^3.0.2" - tar-fs "^2.0.0" - unbzip2-stream "^1.3.3" - ws "^7.2.3" +puppeteer@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.2.0.tgz#7d8d7fda91e19a7cfd56986e0275448e6351849e" + integrity sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw== + dependencies: + debug "4.3.1" + devtools-protocol "0.0.901419" + extract-zip "2.0.1" + https-proxy-agent "5.0.0" + node-fetch "2.6.1" + pkg-dir "4.2.0" + progress "2.0.1" + proxy-from-env "1.1.0" + rimraf "3.0.2" + tar-fs "2.0.0" + unbzip2-stream "1.3.3" + ws "7.4.6" qjobs@^1.2.0: version "1.2.0" @@ -4749,10 +4723,10 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== randombytes@^2.1.0: version "2.1.0" @@ -4786,10 +4760,10 @@ react-dom@^16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-frame-component@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.3.tgz#64c09dd29574720879c5f43ee36c17d8ae74d4ec" - integrity sha512-4PurhctiqnmC1F5prPZ+LdsalH7pZ3SFA5xoc0HBe8mSHctdLLt4Cr2WXfXOoajHBYq/yiipp9zOgx+vy8GiEA== +react-frame-component@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-5.1.0.tgz#a4bd4c598a19103050ea7a1a562e6e03164f724d" + integrity sha512-5L55L2aMzTbA+fUy5EEl1pxTXbKGGtF3giZkkTExf0lw8AQ4u1ZvZDUVBcynKl7CA7F2aF+RZUL17B+fRE9+DA== react-is@^16.8.1, react-is@^16.8.6: version "16.13.1" @@ -4846,10 +4820,10 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -4987,23 +4961,11 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -5011,11 +4973,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5031,7 +4988,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.3.3, resolve@^1.9.0: +resolve@^1.12.0, resolve@^1.14.2, resolve@^1.3.3, resolve@^1.9.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -5039,35 +4996,48 @@ resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.3.3, resolve@^1.9. is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.1.4: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -5098,15 +5068,6 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" @@ -5116,12 +5077,12 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== +schema-utils@^3.0.0, schema-utils@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: - "@types/json-schema" "^7.0.6" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" @@ -5130,10 +5091,10 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^1.10.8: - version "1.10.8" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== +selfsigned@^1.10.11: + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== dependencies: node-forge "^0.10.0" @@ -5142,7 +5103,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.5.0, semver@^5.6.0: +semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -5152,10 +5113,10 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== +semver@^7.2.1, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" @@ -5178,10 +5139,10 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" @@ -5208,11 +5169,6 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -5273,7 +5229,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.3: +signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -5283,6 +5239,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -5351,18 +5312,6 @@ socket.io@^3.1.0: socket.io-adapter "~2.1.0" socket.io-parser "~4.0.3" -sockjs-client@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" - integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.4.7" - sockjs@^0.3.21: version "0.3.21" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" @@ -5372,11 +5321,6 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" -source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -5506,15 +5450,6 @@ streamroller@^2.2.4: debug "^4.1.1" fs-extra "^8.1.0" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -5524,15 +5459,16 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.matchall@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" - integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== +string.prototype.matchall@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has-symbols "^1.0.1" + es-abstract "^1.18.2" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" internal-slot "^1.0.3" regexp.prototype.flags "^1.3.1" side-channel "^1.0.4" @@ -5574,20 +5510,6 @@ strip-ansi@^0.3.0: dependencies: ansi-regex "^0.2.1" -strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -5595,10 +5517,12 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.0.tgz#1dc49b980c3a4100366617adac59327eefdefcb0" + integrity sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg== + dependencies: + ansi-regex "^6.0.0" strip-final-newline@^2.0.0: version "2.0.0" @@ -5622,46 +5546,48 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -table@^6.0.4: - version "6.0.7" - resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" - integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== dependencies: - ajv "^7.0.2" - lodash "^4.17.20" + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" slice-ansi "^4.0.0" string-width "^4.2.0" + strip-ansi "^6.0.0" tapable@^2.1.1, tapable@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== -tar-fs@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== +tar-fs@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" + integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== dependencies: chownr "^1.1.1" - mkdirp-classic "^0.5.2" + mkdirp "^0.5.1" pump "^3.0.0" - tar-stream "^2.1.4" + tar-stream "^2.0.0" -tar-stream@^2.1.4: +tar-stream@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -5672,22 +5598,22 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -terser-webpack-plugin@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" - integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== +terser-webpack-plugin@^5.1.3: + version "5.1.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" + integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== dependencies: - jest-worker "^26.6.2" + jest-worker "^27.0.2" p-limit "^3.1.0" schema-utils "^3.0.0" - serialize-javascript "^5.0.1" + serialize-javascript "^6.0.0" source-map "^0.6.1" - terser "^5.5.1" + terser "^5.7.0" -terser@^5.5.1: - version "5.6.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" - integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== +terser@^5.7.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f" + integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -5713,7 +5639,7 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -tmp@0.2.1: +tmp@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== @@ -5799,11 +5725,6 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -5817,30 +5738,30 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.9.3: - version "3.9.9" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" - integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== +typescript@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== -ua-parser-js@^0.7.23: - version "0.7.24" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz#8d3ecea46ed4f1f1d63ec25f17d8568105dc027c" - integrity sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw== +ua-parser-js@^0.7.28: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== -unbox-primitive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" - integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== dependencies: function-bind "^1.1.1" - has-bigints "^1.0.0" - has-symbols "^1.0.0" - which-boxed-primitive "^1.0.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" -unbzip2-stream@^1.3.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== +unbzip2-stream@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" + integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== dependencies: buffer "^5.2.1" through "^2.3.8" @@ -5913,14 +5834,6 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse@^1.4.3, url-parse@^1.4.7: - version "1.5.1" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" - integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -5985,10 +5898,10 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" - integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -6000,18 +5913,17 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -webpack-cli@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz#b5213b84adf6e1f5de6391334c9fa53a48850466" - integrity sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q== +webpack-cli@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.8.0.tgz#5fc3c8b9401d3c8a43e2afceacfa8261962338d1" + integrity sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.0.1" - "@webpack-cli/info" "^1.2.2" - "@webpack-cli/serve" "^1.3.0" + "@webpack-cli/configtest" "^1.0.4" + "@webpack-cli/info" "^1.3.0" + "@webpack-cli/serve" "^1.5.2" colorette "^1.2.1" commander "^7.0.0" - enquirer "^2.3.6" execa "^5.0.0" fastest-levenshtein "^1.0.12" import-local "^3.0.2" @@ -6020,63 +5932,48 @@ webpack-cli@^4.5.0: v8-compile-cache "^2.2.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== +webpack-dev-middleware@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" + integrity sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw== dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" + colorette "^1.2.2" + mem "^8.1.1" + memfs "^3.2.2" + mime-types "^2.1.31" range-parser "^1.2.1" - webpack-log "^2.0.0" + schema-utils "^3.0.0" -webpack-dev-server@^3.11.0: - version "3.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== +webpack-dev-server@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.0.0.tgz#fb4906e91182154bba54a66e6e06f84c1e3c0a80" + integrity sha512-ya5cjoBSf3LqrshZn2HMaRZQx8YRNBE+tx+CQNFGaLLHrvs4Y1aik0sl5SFhLz2cW1O9/NtyaZhthc+8UiuvkQ== dependencies: - ansi-html "0.0.7" + ansi-html "^0.0.7" bonjour "^3.5.0" - chokidar "^2.1.8" + chokidar "^3.5.1" + colorette "^1.2.2" compression "^1.7.4" connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" + del "^6.0.0" express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.0" + internal-ip "^6.2.0" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + portfinder "^1.0.28" + schema-utils "^3.1.0" + selfsigned "^1.10.11" serve-index "^1.9.1" sockjs "^0.3.21" - sockjs-client "^1.5.0" spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" + strip-ansi "^7.0.0" url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" + webpack-dev-middleware "^5.0.0" + ws "^8.1.0" webpack-merge@^4.1.5: version "4.2.2" @@ -6093,30 +5990,28 @@ webpack-merge@^5.7.3: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" - integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" +webpack-sources@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" + integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== -webpack@^5.27.2: - version "5.27.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.27.2.tgz#44442219e1469ebe00292703b848580faae03f07" - integrity sha512-brNF3N/EdvMzkaZ/Xzb8sqPn5Si3iw6meqCnmNFtcnkorZsFZCBFMa2ElpIMjx6sKWYsnUpBO2dnX+7xgj+mjg== +webpack@^5.51.1: + version "5.51.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.51.1.tgz#41bebf38dccab9a89487b16dbe95c22e147aac57" + integrity sha512-xsn3lwqEKoFvqn4JQggPSRxE4dhsRcysWTqYABAZlmavcoTmwlOb9b1N36Inbt/eIispSkuHa80/FJkDTPos1A== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.46" - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/wasm-edit" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.0.4" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.7.0" - es-module-lexer "^0.4.0" - eslint-scope "^5.1.1" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.7.1" + eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.4" @@ -6124,11 +6019,11 @@ webpack@^5.27.2: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.0.0" + schema-utils "^3.1.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.1" - watchpack "^2.0.0" - webpack-sources "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -6144,7 +6039,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -which-boxed-primitive@^1.0.1: +which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -6155,11 +6050,6 @@ which-boxed-primitive@^1.0.1: is-string "^1.0.5" is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - which-typed-array@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" @@ -6204,15 +6094,6 @@ word-wrap@^1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -6227,22 +6108,15 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -ws@^7.2.3, ws@~7.4.2: - version "7.4.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" - integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== +ws@7.4.6, ws@~7.4.2: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== +ws@^8.1.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.0.tgz#0b738cd484bfc9303421914b11bb4011e07615bb" + integrity sha512-uYhVJ/m9oXwEI04iIVmgLmugh2qrZihkywG9y5FfZV2ATeLIzHf93qs+tUNqlttbQK957/VX3mtwAS+UfIwA4g== y18n@^5.0.5: version "5.0.5" @@ -6259,35 +6133,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.2.2: version "20.2.7" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - yargs@^16.1.1: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" From 5d48982fe4ec9c753a2cfd06c3f963be29d6da5b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Thu, 26 Aug 2021 07:40:58 -0400 Subject: [PATCH 392/412] chore(devDeps): dependabot vulns & eslint-parser --- .eslintrc | 2 +- package.json | 6 +- yarn.lock | 407 +++++++++++++++++++++++++-------------------------- 3 files changed, 207 insertions(+), 208 deletions(-) diff --git a/.eslintrc b/.eslintrc index 8145bd08..19254d13 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,5 +1,5 @@ { - "parser": "babel-eslint", + "parser": "@babel/eslint-parser", "extends": "eslint:recommended", "plugins": [ "react" diff --git a/package.json b/package.json index 742731e8..9e8f9e3a 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "devDependencies": { "@babel/cli": "^7.14.8", "@babel/core": "^7.15.0", + "@babel/eslint-parser": "^7.15.0", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-transform-flow-comments": "^7.14.5", "@babel/preset-env": "^7.15.0", @@ -49,7 +50,6 @@ "@types/react": "^17.0.19", "@types/react-dom": "^17.0.9", "assert": "^2.0.0", - "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "babel-plugin-transform-inline-environment-variables": "^0.4.3", "eslint": "^7.32.0", @@ -69,11 +69,11 @@ "phantomjs-prebuilt": "^2.1.16", "pre-commit": "^1.2.2", "process": "^0.11.10", + "puppeteer": "^10.2.0", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-test-renderer": "^16.13.1", - "puppeteer": "^10.2.0", "react-frame-component": "^5.1.0", + "react-test-renderer": "^16.13.1", "semver": "^7.3.5", "static-server": "^3.0.0", "typescript": "^4.3.5", diff --git a/yarn.lock b/yarn.lock index b80eb69e..7b06d9a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,7 +25,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": +"@babel/code-frame@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== @@ -58,6 +58,15 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/eslint-parser@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz#b54f06e04d0e93aebcba99f89251e3bf0ee39f21" + integrity sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw== + dependencies: + eslint-scope "^5.1.1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + "@babel/generator@^7.14.5", "@babel/generator@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" @@ -274,7 +283,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.7.0": +"@babel/parser@^7.14.5", "@babel/parser@^7.15.0": version "7.15.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== @@ -938,9 +947,9 @@ "@babel/plugin-transform-react-pure-annotations" "^7.14.5" "@babel/runtime@^7.8.4": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== dependencies: regenerator-runtime "^0.13.4" @@ -953,7 +962,7 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== @@ -968,7 +977,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": +"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.4.4": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== @@ -977,9 +986,9 @@ to-fast-properties "^2.0.0" "@discoveryjs/json-ext@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" - integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== + version "0.5.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" + integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== "@eslint/eslintrc@^0.4.3": version "0.4.3" @@ -1054,27 +1063,27 @@ integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== "@types/cookie@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" - integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== "@types/cors@^2.8.8": - version "2.8.10" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" - integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== "@types/eslint-scope@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" - integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + version "3.7.1" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" + integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "7.2.7" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.7.tgz#f7ef1cf0dceab0ae6f9a976a0a9af14ab1baca26" - integrity sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q== + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" + integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1097,14 +1106,14 @@ integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/node@*", "@types/node@>=10.0.0": - version "14.14.35" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" - integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== + version "16.7.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.2.tgz#0465a39b5456b61a04d98bd5545f8b34be340cb7" + integrity sha512-TbG4TOx9hng8FKxaVrCisdaxKxqEwJ3zwHoCWXZ0Jw6mnvTInpaB99/2Cy4+XxpXtjNv9/TgfGSvZFyfV/t8Fw== "@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== "@types/react-dom@^17.0.9": version "17.0.9" @@ -1128,14 +1137,14 @@ integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== "@types/scheduler@*": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" - integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== "@types/yauzl@^2.9.1": - version "2.9.1" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" - integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + version "2.9.2" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" + integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== dependencies: "@types/node" "*" @@ -1301,9 +1310,9 @@ acorn-import-assertions@^1.7.6: integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^7.4.0: version "7.4.1" @@ -1437,11 +1446,6 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1537,12 +1541,10 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -available-typed-arrays@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" - integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== - dependencies: - array-filter "^1.0.0" +available-typed-arrays@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" + integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== aws-sign2@~0.7.0: version "0.7.0" @@ -1554,18 +1556,6 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -babel-eslint@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - babel-loader@^8.1.0: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -1613,9 +1603,9 @@ babel-plugin-transform-inline-environment-variables@^0.4.3: integrity sha1-o7CYgzU76LXiM24/8e+KXZP5xIk= balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-arraybuffer@0.1.4: version "0.1.4" @@ -1757,9 +1747,9 @@ buffer-crc32@~0.2.3: integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-indexof@^1.0.0: version "1.1.1" @@ -1843,9 +1833,9 @@ chalk@^2.0.0: supports-color "^5.3.0" chalk@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -1871,11 +1861,9 @@ chownr@^1.1.1: integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== class-utils@^0.3.5: version "0.3.6" @@ -2052,9 +2040,9 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.1.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" @@ -2118,9 +2106,9 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: which "^2.0.1" csstype@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" - integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== custom-event@~1.0.0: version "1.0.1" @@ -2151,7 +2139,14 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.3.1: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -2258,9 +2253,9 @@ destroy@~1.0.4: integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-node@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" - integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== devtools-protocol@0.0.901419: version "0.0.901419" @@ -2285,9 +2280,9 @@ dns-equal@^1.0.0: integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" @@ -2404,11 +2399,11 @@ ent@~2.2.0: integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= envinfo@^7.7.3: - version "7.7.4" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" - integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2, es-abstract@^1.18.5: version "1.18.5" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== @@ -2508,15 +2503,15 @@ eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@^7.32.0: version "7.32.0" @@ -2623,9 +2618,9 @@ events@^3.2.0: integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" - integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.0" @@ -2790,9 +2785,9 @@ fastq@^1.6.0: reusify "^1.0.4" faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" @@ -2876,9 +2871,9 @@ flatted@^2.0.1: integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== flow-bin@^0.158.0: version "0.158.0" @@ -2886,9 +2881,9 @@ flow-bin@^0.158.0: integrity sha512-Gk5md8XTwk/M+J5M+rFyS1LJfFen6ldY60jM9+meWixlKf4b0vwdoUO8R7oo471pze+GY+blrnskUeqLDxFJfg== follow-redirects@^1.0.0: - version "1.13.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" - integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== + version "1.14.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b" + integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA== for-in@^1.0.2: version "1.0.2" @@ -2914,10 +2909,10 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fragment-cache@^0.2.1: version "0.2.1" @@ -3011,9 +3006,9 @@ get-stream@^5.1.0: pump "^3.0.0" get-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" - integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" @@ -3402,16 +3397,19 @@ is-accessor-descriptor@^1.0.0: kind-of "^6.0.0" is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-bigint@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@^1.0.0: version "1.0.1" @@ -3428,11 +3426,12 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-buffer@^1.1.5: version "1.1.6" @@ -3440,14 +3439,14 @@ is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== dependencies: has "^1.0.3" @@ -3466,9 +3465,11 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-descriptor@^0.1.0: version "0.1.6" @@ -3516,9 +3517,11 @@ is-fullwidth-code-point@^3.0.0: integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-function@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" - integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" @@ -3548,9 +3551,11 @@ is-negative-zero@^2.0.1: integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" @@ -3600,9 +3605,9 @@ is-stream@^1.0.1: integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.5, is-string@^1.0.6: version "1.0.7" @@ -3612,22 +3617,22 @@ is-string@^1.0.5, is-string@^1.0.6: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - has-symbols "^1.0.1" + has-symbols "^1.0.2" -is-typed-array@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" - integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== +is-typed-array@^1.1.3, is-typed-array@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.7.tgz#881ddc660b13cb8423b2090fa88c0fe37a83eb2f" + integrity sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA== dependencies: - available-typed-arrays "^1.0.2" + available-typed-arrays "^1.0.4" call-bind "^1.0.2" - es-abstract "^1.18.0-next.2" + es-abstract "^1.18.5" foreach "^2.0.5" - has-symbols "^1.0.1" + has-tostringtag "^1.0.0" is-typedarray@~1.0.0: version "1.0.0" @@ -4514,9 +4519,9 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@0.1.7: version "0.1.7" @@ -4645,11 +4650,11 @@ prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: react-is "^16.8.1" proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: - forwarded "~0.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" proxy-from-env@1.1.0: @@ -4828,9 +4833,9 @@ readdirp@~3.6.0: picomatch "^2.2.1" rechoir@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== dependencies: resolve "^1.9.0" @@ -4847,9 +4852,9 @@ regenerate@^1.4.0: integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.14.2: version "0.14.5" @@ -4875,9 +4880,9 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: define-properties "^1.1.3" regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^4.7.1: version "4.7.1" @@ -4897,9 +4902,9 @@ regjsgen@^0.5.1: integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: - version "0.6.7" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" - integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== dependencies: jsesc "~0.5.0" @@ -4909,9 +4914,9 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" @@ -4988,7 +4993,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.12.0, resolve@^1.14.2, resolve@^1.3.3, resolve@^1.9.0: +resolve@^1.14.2, resolve@^1.3.3, resolve@^1.9.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -5696,11 +5701,6 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -5853,9 +5853,9 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util@^0.12.0: - version "0.12.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" - integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== dependencies: inherits "^2.0.3" is-arguments "^1.0.4" @@ -5983,9 +5983,9 @@ webpack-merge@^4.1.5: lodash "^4.17.15" webpack-merge@^5.7.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" - integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== dependencies: clone-deep "^4.0.1" wildcard "^2.0.0" @@ -6051,17 +6051,16 @@ which-boxed-primitive@^1.0.2: is-symbol "^1.0.3" which-typed-array@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" - integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== + version "1.1.6" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.6.tgz#f3713d801da0720a7f26f50c596980a9f5c8b383" + integrity sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q== dependencies: - available-typed-arrays "^1.0.2" - call-bind "^1.0.0" - es-abstract "^1.18.0-next.1" + available-typed-arrays "^1.0.4" + call-bind "^1.0.2" + es-abstract "^1.18.5" foreach "^2.0.5" - function-bind "^1.1.1" - has-symbols "^1.0.1" - is-typed-array "^1.1.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.6" which@1.2.x: version "1.2.14" @@ -6119,9 +6118,9 @@ ws@^8.1.0: integrity sha512-uYhVJ/m9oXwEI04iIVmgLmugh2qrZihkywG9y5FfZV2ATeLIzHf93qs+tUNqlttbQK957/VX3mtwAS+UfIwA4g== y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^2.1.2: version "2.1.2" @@ -6134,9 +6133,9 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@^20.2.2: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs@^16.1.1: version "16.2.0" From ffb4766b53836f27e7d16814222257afdb12a5fa Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Fri, 27 Aug 2021 18:36:30 -0400 Subject: [PATCH 393/412] release v4.4.4 --- CHANGELOG.md | 9 +++++++++ package.json | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd8eb515..164590a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### 4.4.4 (Aug 27, 2021) + +- Fix: Ensure `documentElement.style` actually exists. Fixes crashes in some obscure environments. #574 #575 +- Fix: Add react/react-dom as `peerDependencies` again to fix Yarn PnP +- Size: Replace `classnames` with `clsx` to save a few bytes +- Internal: Additional tests on `ref` functionality and additional README content on `nodeRef` +- Internal: Lots of devDependencies updates +- Docs: Various README and demo updates, see git commits + ### 4.4.3 (June 8, 2020) - Add `nodeRef` to TypeScript definitions diff --git a/package.json b/package.json index 9e8f9e3a..5096d982 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.4.3", + "version": "4.4.4", "description": "React draggable component", "main": "build/cjs/cjs.js", "unpkg": "build/web/react-draggable.min.js", @@ -96,4 +96,4 @@ "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } -} +} \ No newline at end of file From 31798e920647f40308a144a9f989c771755a21db Mon Sep 17 00:00:00 2001 From: BrianHung Date: Thu, 27 Jan 2022 09:42:43 -0800 Subject: [PATCH 394/412] `grid` prop unused in `handleDragStop` (#621) * fix: `grid` prop unused in `handleDragStop` * call `onStop` even if `deltaX = 0` and `deltaY = 0` * fix `const {x, y}` in `handleDragStop`; add test case for `grid` prop --- lib/DraggableCore.js | 10 +++++++++- specs/draggable.spec.jsx | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index c5a3da8f..a53b7de8 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -383,7 +383,15 @@ export default class DraggableCore extends React.Component +
+ + ); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 0, 0, 100, 100); + }); }); From a28e90433f64a493b74637ae29a8e44f3920da75 Mon Sep 17 00:00:00 2001 From: Sebastiaan Nijland <19267753+SebastiaanNijland@users.noreply.github.com> Date: Tue, 26 Apr 2022 19:24:54 +0200 Subject: [PATCH 395/412] fix: add children to the DraggableCoreProps (#648) --- typings/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/typings/index.d.ts b/typings/index.d.ts index ad7f22ba..bcbc6ff3 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -43,6 +43,7 @@ declare module 'react-draggable' { export interface DraggableCoreProps { allowAnyClick: boolean, cancel: string, + children?: React.ReactNode, disabled: boolean, enableUserSelectHack: boolean, offsetParent: HTMLElement, From 039bda5221f6d1837d9829283cfca825aeb916ef Mon Sep 17 00:00:00 2001 From: Sergey Date: Tue, 26 Apr 2022 20:27:03 +0300 Subject: [PATCH 396/412] Better strict mode support (#632) --- lib/DraggableCore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index a53b7de8..5c448a28 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -265,7 +265,7 @@ export default class DraggableCore extends React.Component = (e) => { From 3224c05c0ba12213abf3a4474351f390434da3a2 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 26 Apr 2022 13:30:45 -0400 Subject: [PATCH 397/412] chore(dev): upgrade dependencies --- package.json | 52 +- yarn.lock | 4584 +++++++++++++++++++++----------------------------- 2 files changed, 1966 insertions(+), 2670 deletions(-) diff --git a/package.json b/package.json index 5096d982..d49672e6 100644 --- a/package.json +++ b/package.json @@ -39,29 +39,29 @@ }, "homepage": "https://github.com/react-grid-layout/react-draggable", "devDependencies": { - "@babel/cli": "^7.14.8", - "@babel/core": "^7.15.0", - "@babel/eslint-parser": "^7.15.0", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-transform-flow-comments": "^7.14.5", - "@babel/preset-env": "^7.15.0", - "@babel/preset-flow": "^7.14.5", - "@babel/preset-react": "^7.14.5", + "@babel/cli": "^7.17.6", + "@babel/core": "^7.17.9", + "@babel/eslint-parser": "^7.17.0", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-transform-flow-comments": "^7.16.7", + "@babel/preset-env": "^7.16.11", + "@babel/preset-flow": "^7.16.7", + "@babel/preset-react": "^7.16.7", "@types/react": "^17.0.19", "@types/react-dom": "^17.0.9", "assert": "^2.0.0", - "babel-loader": "^8.1.0", + "babel-loader": "^8.2.5", "babel-plugin-transform-inline-environment-variables": "^0.4.3", - "eslint": "^7.32.0", - "eslint-plugin-react": "^7.24.0", - "flow-bin": "^0.158.0", - "jasmine-core": "^3.9.0", - "karma": "^6.3.4", - "karma-chrome-launcher": "^3.1.0", + "eslint": "^8.14.0", + "eslint-plugin-react": "^7.29.4", + "flow-bin": "^0.176.3", + "jasmine-core": "^4.1.0", + "karma": "^6.3.19", + "karma-chrome-launcher": "^3.1.1", "karma-cli": "2.0.0", - "karma-firefox-launcher": "^2.1.1", + "karma-firefox-launcher": "^2.1.2", "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^4.0.1", + "karma-jasmine": "^5.0.0", "karma-phantomjs-launcher": "^1.0.4", "karma-phantomjs-shim": "^1.5.0", "karma-webpack": "^5.0.0", @@ -69,17 +69,17 @@ "phantomjs-prebuilt": "^2.1.16", "pre-commit": "^1.2.2", "process": "^0.11.10", - "puppeteer": "^10.2.0", + "puppeteer": "^13.6.0", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-frame-component": "^5.1.0", + "react-frame-component": "^5.2.1", "react-test-renderer": "^16.13.1", - "semver": "^7.3.5", + "semver": "^7.3.7", "static-server": "^3.0.0", - "typescript": "^4.3.5", - "webpack": "^5.51.1", - "webpack-cli": "^4.8.0", - "webpack-dev-server": "^4.0.0" + "typescript": "^4.6.3", + "webpack": "^5.72.0", + "webpack-cli": "^4.9.2", + "webpack-dev-server": "^4.8.1" }, "resolutions": { "minimist": "^1.2.5" @@ -90,10 +90,10 @@ ], "dependencies": { "clsx": "^1.1.1", - "prop-types": "^15.6.0" + "prop-types": "^15.8.1" }, "peerDependencies": { "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 7b06d9a3..130d2876 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,19 @@ # yarn lockfile v1 -"@babel/cli@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.8.tgz#fac73c0e2328a8af9fd3560c06b096bfa3730933" - integrity sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg== +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + +"@babel/cli@^7.17.6": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.17.6.tgz#169e5935f1795f0b62ded5a2accafeedfe5c5363" + integrity sha512-l4w608nsDNlxZhiJ5tE3DbNmr61fIKMZ6fTBo171VEFuFMIYuJ3mHRhTLEkKKyvx2Mizkkv/0a8OJOnZqkKYNA== dependencies: + "@jridgewell/trace-mapping" "^0.3.4" commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" @@ -15,116 +23,110 @@ slash "^2.0.0" source-map "^0.5.0" optionalDependencies: - "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.2" + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== - dependencies: - "@babel/highlight" "^7.14.5" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" - integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== - -"@babel/core@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" - integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.15.0" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" +"@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + +"@babel/core@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.1.2" + json5 "^2.2.1" semver "^6.3.0" - source-map "^0.5.0" -"@babel/eslint-parser@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz#b54f06e04d0e93aebcba99f89251e3bf0ee39f21" - integrity sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw== +"@babel/eslint-parser@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" + integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== dependencies: eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.14.5", "@babel/generator@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" - integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== +"@babel/generator@^7.16.7", "@babel/generator@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.17.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" - integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.16.7" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" - integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== dependencies: - "@babel/helper-explode-assignable-expression" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" - integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.14.5": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" - integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q== +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" + integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-member-expression-to-functions" "^7.15.0" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" - "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-member-expression-to-functions" "^7.17.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-regexp-features-plugin@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" - integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== +"@babel/helper-create-regexp-features-plugin@^7.16.7": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - regexpu-core "^4.7.1" + "@babel/helper-annotate-as-pure" "^7.16.7" + regexpu-core "^5.0.1" -"@babel/helper-define-polyfill-provider@^0.2.2": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" - integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -135,295 +137,302 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-explode-assignable-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" - integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" - integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== - dependencies: - "@babel/helper-get-function-arity" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/helper-get-function-arity@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" - integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-hoist-variables@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" - integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-member-expression-to-functions@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" - integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== + "@babel/types" "^7.16.7" + +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.16.7" -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" - integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== - dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" - "@babel/helper-simple-access" "^7.14.8" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.9" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - -"@babel/helper-optimise-call-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" - integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== - -"@babel/helper-remap-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" - integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-wrap-function" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" - integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.15.0" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - -"@babel/helper-simple-access@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" - integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== - dependencies: - "@babel/types" "^7.14.8" - -"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" - integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-split-export-declaration@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" - integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" - integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== - -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - -"@babel/helper-wrap-function@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" - integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== - dependencies: - "@babel/helper-function-name" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" -"@babel/helpers@^7.14.8": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" - integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== - dependencies: - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.5" +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== + dependencies: + "@babel/types" "^7.17.0" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== + dependencies: + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + +"@babel/highlight@^7.16.7": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" + integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.14.5", "@babel/parser@^7.15.0": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" - integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== +"@babel/parser@^7.16.7", "@babel/parser@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" + integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" - integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" + integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-async-generator-functions@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" - integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" + integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" - integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== +"@babel/plugin-proposal-class-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" + integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" - integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" + integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.17.6" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" - integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" - integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" + integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" - integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" + integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" - integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" + integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" - integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" + integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" - integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" - integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== +"@babel/plugin-proposal-object-rest-spread@^7.16.7": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== dependencies: - "@babel/compat-data" "^7.14.7" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/compat-data" "^7.17.0" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.16.7" -"@babel/plugin-proposal-optional-catch-binding@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" - integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" - integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== +"@babel/plugin-proposal-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" - integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== +"@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.16.10" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" - integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" + integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" - integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" + integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -460,12 +469,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz#2ff654999497d7d7d142493260005263731da180" - integrity sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q== +"@babel/plugin-syntax-flow@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832" + integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -474,12 +483,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" - integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== +"@babel/plugin-syntax-jsx@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" + integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -537,329 +546,332 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" - integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== +"@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" + integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" - integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" -"@babel/plugin-transform-block-scoped-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" - integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-block-scoping@^7.14.5": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" - integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== +"@babel/plugin-transform-block-scoping@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" + integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-classes@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" - integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== +"@babel/plugin-transform-classes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" + integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" - integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" + integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-destructuring@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" - integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== +"@babel/plugin-transform-destructuring@^7.16.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" + integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" - integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-duplicate-keys@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" - integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" + integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-exponentiation-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" - integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-flow-comments@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.14.5.tgz#295d60687828be3e2873e5628e0c8d6030710067" - integrity sha512-VAme+wF0d2PtCsW9P4UQ5laJ9KzYBXYOEEe1/16dlxM3d5oRx8I2u6hXQaOCzFqhciAz9HsgHvqMVT0JVI4n7Q== +"@babel/plugin-transform-flow-comments@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.16.7.tgz#be372c158b4d73ac98739cd993a496695b20b2b7" + integrity sha512-UwUPYGlsKRVrKlG2cqwDq3OVTRBZe8uB5cn9yGUy3ZLG+AZko5XtLitlivjylcw920+NMGqls+gEKLwjegMdcg== dependencies: - "@babel/generator" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-flow" "^7.14.5" + "@babel/generator" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-flow" "^7.16.7" -"@babel/plugin-transform-flow-strip-types@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz#0dc9c1d11dcdc873417903d6df4bed019ef0f85e" - integrity sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA== +"@babel/plugin-transform-flow-strip-types@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8" + integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-flow" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-flow" "^7.16.7" -"@babel/plugin-transform-for-of@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" - integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== +"@babel/plugin-transform-for-of@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" + integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" - integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== dependencies: - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" - integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== +"@babel/plugin-transform-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" + integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-member-expression-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" - integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-modules-amd@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" - integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" + integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== dependencies: - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" - integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== +"@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" + integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== dependencies: - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" - integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" + integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== dependencies: - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" - integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== +"@babel/plugin-transform-modules-umd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" + integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== dependencies: - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" - integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" -"@babel/plugin-transform-new-target@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" - integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== +"@babel/plugin-transform-new-target@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" + integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-object-super@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" - integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" -"@babel/plugin-transform-parameters@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" - integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== +"@babel/plugin-transform-parameters@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" + integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-property-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" - integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-react-display-name@^7.14.5": - version "7.15.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz#6aaac6099f1fcf6589d35ae6be1b6e10c8c602b9" - integrity sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q== +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-react-jsx-development@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af" - integrity sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ== +"@babel/plugin-transform-react-display-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" + integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== dependencies: - "@babel/plugin-transform-react-jsx" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-react-jsx@^7.14.5": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c" - integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw== +"@babel/plugin-transform-react-jsx-development@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" + integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-jsx" "^7.14.5" - "@babel/types" "^7.14.9" - -"@babel/plugin-transform-react-pure-annotations@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc" - integrity sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-react-jsx" "^7.16.7" -"@babel/plugin-transform-regenerator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" - integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" - integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-shorthand-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" - integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-spread@^7.14.6": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" - integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" - -"@babel/plugin-transform-sticky-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" - integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-template-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" - integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-typeof-symbol@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" - integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-unicode-escapes@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" - integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-unicode-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" - integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/preset-env@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" - integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== - dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-async-generator-functions" "^7.14.9" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-class-static-block" "^7.14.5" - "@babel/plugin-proposal-dynamic-import" "^7.14.5" - "@babel/plugin-proposal-export-namespace-from" "^7.14.5" - "@babel/plugin-proposal-json-strings" "^7.14.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" - "@babel/plugin-proposal-numeric-separator" "^7.14.5" - "@babel/plugin-proposal-object-rest-spread" "^7.14.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-private-methods" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" +"@babel/plugin-transform-react-jsx@^7.16.7": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" + integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-jsx" "^7.16.7" + "@babel/types" "^7.17.0" + +"@babel/plugin-transform-react-pure-annotations@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67" + integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-regenerator@^7.16.7": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" + integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== + dependencies: + regenerator-transform "^0.15.0" + +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" + integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" + integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-template-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" + integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" + integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/preset-env@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + dependencies: + "@babel/compat-data" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.8" + "@babel/plugin-proposal-class-properties" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.16.7" + "@babel/plugin-proposal-json-strings" "^7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" + "@babel/plugin-proposal-private-property-in-object" "^7.16.7" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -874,59 +886,59 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.14.5" - "@babel/plugin-transform-async-to-generator" "^7.14.5" - "@babel/plugin-transform-block-scoped-functions" "^7.14.5" - "@babel/plugin-transform-block-scoping" "^7.14.5" - "@babel/plugin-transform-classes" "^7.14.9" - "@babel/plugin-transform-computed-properties" "^7.14.5" - "@babel/plugin-transform-destructuring" "^7.14.7" - "@babel/plugin-transform-dotall-regex" "^7.14.5" - "@babel/plugin-transform-duplicate-keys" "^7.14.5" - "@babel/plugin-transform-exponentiation-operator" "^7.14.5" - "@babel/plugin-transform-for-of" "^7.14.5" - "@babel/plugin-transform-function-name" "^7.14.5" - "@babel/plugin-transform-literals" "^7.14.5" - "@babel/plugin-transform-member-expression-literals" "^7.14.5" - "@babel/plugin-transform-modules-amd" "^7.14.5" - "@babel/plugin-transform-modules-commonjs" "^7.15.0" - "@babel/plugin-transform-modules-systemjs" "^7.14.5" - "@babel/plugin-transform-modules-umd" "^7.14.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" - "@babel/plugin-transform-new-target" "^7.14.5" - "@babel/plugin-transform-object-super" "^7.14.5" - "@babel/plugin-transform-parameters" "^7.14.5" - "@babel/plugin-transform-property-literals" "^7.14.5" - "@babel/plugin-transform-regenerator" "^7.14.5" - "@babel/plugin-transform-reserved-words" "^7.14.5" - "@babel/plugin-transform-shorthand-properties" "^7.14.5" - "@babel/plugin-transform-spread" "^7.14.6" - "@babel/plugin-transform-sticky-regex" "^7.14.5" - "@babel/plugin-transform-template-literals" "^7.14.5" - "@babel/plugin-transform-typeof-symbol" "^7.14.5" - "@babel/plugin-transform-unicode-escapes" "^7.14.5" - "@babel/plugin-transform-unicode-regex" "^7.14.5" - "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.15.0" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - core-js-compat "^3.16.0" + "@babel/plugin-transform-arrow-functions" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.16.7" + "@babel/plugin-transform-classes" "^7.16.7" + "@babel/plugin-transform-computed-properties" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.8" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.8" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.20.2" semver "^6.3.0" -"@babel/preset-flow@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.14.5.tgz#a1810b0780c8b48ab0bece8e7ab8d0d37712751c" - integrity sha512-pP5QEb4qRUSVGzzKx9xqRuHUrM/jEzMqdrZpdMA+oUCRgd5zM1qGr5y5+ZgAL/1tVv1H0dyk5t4SKJntqyiVtg== +"@babel/preset-flow@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.7.tgz#7fd831323ab25eeba6e4b77a589f680e30581cbd" + integrity sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-transform-flow-strip-types" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-flow-strip-types" "^7.16.7" -"@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -934,198 +946,263 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c" - integrity sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ== +"@babel/preset-react@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" + integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-transform-react-display-name" "^7.14.5" - "@babel/plugin-transform-react-jsx" "^7.14.5" - "@babel/plugin-transform-react-jsx-development" "^7.14.5" - "@babel/plugin-transform-react-pure-annotations" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-react-display-name" "^7.16.7" + "@babel/plugin-transform-react-jsx" "^7.16.7" + "@babel/plugin-transform-react-jsx-development" "^7.16.7" + "@babel/plugin-transform-react-pure-annotations" "^7.16.7" "@babel/runtime@^7.8.4": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" - integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" + integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" - integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.15.0" - "@babel/types" "^7.15.0" +"@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.9" + "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.4.4": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" - integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: - "@babel/helper-validator-identifier" "^7.14.9" + "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + "@discoveryjs/json-ext@^0.5.0": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" - integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint/eslintrc@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.2.tgz#4989b9e8c0216747ee7cca314ae73791bb281aae" + integrity sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" + debug "^4.3.2" + espree "^9.3.1" globals "^13.9.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" + js-yaml "^4.1.0" minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@humanwhocodes/config-array@^0.9.2": + version "0.9.5" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" + integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" + "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== - -"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.2": - version "2.1.8-no-fsevents.2" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz#e324c0a247a5567192dd7180647709d7e2faf94b" - integrity sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^5.1.2" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz#4ac237f4dabc8dd93330386907b97591801f7352" + integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== +"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.4": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" + integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== + +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": + version "2.1.8-no-fsevents.3" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== + +"@socket.io/base64-arraybuffer@~1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#568d9beae00b0d835f4f8c53fd55714986492e61" + integrity sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" + "@types/node" "*" "@types/component-emitter@^1.2.10": - version "1.2.10" - resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" - integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== + version "1.2.11" + resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.11.tgz#50d47d42b347253817a39709fef03ce66a108506" + integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ== + +"@types/connect-history-api-fallback@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" -"@types/cookie@^0.4.0": +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/cookie@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== -"@types/cors@^2.8.8": +"@types/cors@^2.8.12": version "2.8.12" resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/eslint-scope@^3.7.0": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" - integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== +"@types/eslint-scope@^3.7.3": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" + integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" - integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== + version "8.4.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" + integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.50": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== +"@types/estree@*", "@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.28" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" -"@types/http-proxy@^1.17.5": - version "1.17.7" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" - integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== +"@types/http-proxy@^1.17.8": + version "1.17.8" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55" + integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA== dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/node@*", "@types/node@>=10.0.0": - version "16.7.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.2.tgz#0465a39b5456b61a04d98bd5545f8b34be340cb7" - integrity sha512-TbG4TOx9hng8FKxaVrCisdaxKxqEwJ3zwHoCWXZ0Jw6mnvTInpaB99/2Cy4+XxpXtjNv9/TgfGSvZFyfV/t8Fw== + version "17.0.27" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.27.tgz#f4df3981ae8268c066e8f49995639f855469081e" + integrity sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg== "@types/prop-types@*": - version "15.7.4" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" - integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/react-dom@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" - integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== + version "17.0.16" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.16.tgz#7caba93cf2806c51e64d620d8dff4bae57e06cc4" + integrity sha512-DWcXf8EbMrO/gWnQU7Z88Ws/p16qxGpPyjTKTpmBSFKeE+HveVubqGO1CVK7FrwlWD5MuOcvh8gtd0/XO38NdQ== dependencies: - "@types/react" "*" + "@types/react" "^17" -"@types/react@*", "@types/react@^17.0.19": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.19.tgz#8f2a85e8180a43b57966b237d26a29481dacc991" - integrity sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A== +"@types/react@^17", "@types/react@^17.0.19": + version "17.0.44" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" + integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -1141,10 +1218,39 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/serve-index@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + dependencies: + "@types/express" "*" + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/sockjs@^0.3.33": + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + dependencies: + "@types/node" "*" + +"@types/ws@^8.5.1": + version "8.5.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + "@types/yauzl@^2.9.1": - version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" - integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== dependencies: "@types/node" "*" @@ -1269,22 +1375,22 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa" - integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ== +"@webpack-cli/configtest@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356" + integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== -"@webpack-cli/info@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b" - integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w== +"@webpack-cli/info@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea" + integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.2.tgz#ea584b637ff63c5a477f6f21604b5a205b72c9ec" - integrity sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw== +"@webpack-cli/serve@^1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe" + integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -1296,33 +1402,28 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + mime-types "~2.1.34" + negotiator "0.6.3" acorn-import-assertions@^1.7.6: - version "1.7.6" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" - integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" - integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== +acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== agent-base@6: version "6.0.2" @@ -1331,19 +1432,25 @@ agent-base@6: dependencies: debug "4" -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" + ajv "^8.0.0" ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== +ajv-keywords@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -1354,40 +1461,30 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: - version "8.6.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" - integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== +ajv@^8.0.0, ajv@^8.8.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-html@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-regex@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.0.tgz#ecc7f5933cbe5ac7b33e209a5ff409ab1669c6b2" - integrity sha512-tAaOSrWCHF+1Ear1Z4wnJCXA9GGox4K6Ic85a5qalES2aeEwQGr7UC93mwef49536PkCYjzkp0zIxfFvexJ6zQ== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^1.1.0: version "1.1.0" @@ -1408,14 +1505,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -1424,73 +1513,46 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-flatten@^2.1.0: +array-flatten@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.2, array-includes@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" - integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== +array-includes@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" + integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.19.1" get-intrinsic "^1.1.1" - is-string "^1.0.5" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + is-string "^1.0.7" -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flatmap@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" - integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== +array.prototype.flatmap@^1.2.5: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" + integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" @@ -1509,25 +1571,10 @@ assert@^2.0.0: object-is "^1.0.1" util "^0.12.0" -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" @@ -1536,15 +1583,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -available-typed-arrays@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" - integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sign2@~0.7.0: version "0.7.0" @@ -1556,13 +1598,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -babel-loader@^8.1.0: - version "8.2.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" - integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== +babel-loader@^8.2.5: + version "8.2.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== dependencies: find-cache-dir "^3.3.1" - loader-utils "^1.4.0" + loader-utils "^2.0.0" make-dir "^3.1.0" schema-utils "^2.6.5" @@ -1573,29 +1615,29 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" - integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.2" + "@babel/helper-define-polyfill-provider" "^0.3.1" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" - integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.14.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" - integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" + "@babel/helper-define-polyfill-provider" "^0.3.1" babel-plugin-transform-inline-environment-variables@^0.4.3: version "0.4.3" @@ -1607,11 +1649,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-arraybuffer@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" - integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= - base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -1622,19 +1659,6 @@ base64id@2.0.0, base64id@~2.0.0: resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -1652,11 +1676,6 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -1671,33 +1690,33 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -body-parser@1.19.0, body-parser@^1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== +body-parser@1.20.0, body-parser@^1.19.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== dependencies: - bytes "3.1.0" + bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= +bonjour-service@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.12.tgz#28fbd4683f5f2e36feedb833e24ba661cac960c3" + integrity sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw== dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" + array-flatten "^2.1.2" dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.4" brace-expansion@^1.1.7: version "1.1.11" @@ -1707,39 +1726,23 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.16.8: - version "4.16.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" - integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== +browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.20.2: + version "4.20.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" + integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== dependencies: - caniuse-lite "^1.0.30001251" - colorette "^1.3.0" - electron-to-chromium "^1.3.811" + caniuse-lite "^1.0.30001332" + electron-to-chromium "^1.4.118" escalade "^3.1.1" - node-releases "^1.1.75" + node-releases "^2.0.3" + picocolors "^1.0.0" buffer-crc32@~0.2.3: version "0.2.13" @@ -1751,11 +1754,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -1769,25 +1767,10 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -1802,10 +1785,10 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001251: - version "1.0.30001252" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" - integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== +caniuse-lite@^1.0.30001332: + version "1.0.30001332" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" + integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== caseless@~0.12.0: version "0.12.0" @@ -1840,10 +1823,10 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@^3.4.0, chokidar@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +chokidar@^3.4.0, chokidar@^3.5.1, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -1865,21 +1848,6 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1903,14 +1871,6 @@ clsx@^1.1.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1935,15 +1895,10 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" - integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== - -colors@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" @@ -1972,7 +1927,7 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -component-emitter@^1.2.1, component-emitter@~1.3.0: +component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -2027,12 +1982,12 @@ connect@^3.7.0: parseurl "~1.3.3" utils-merge "1.0.1" -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: - safe-buffer "5.1.2" + safe-buffer "5.2.1" content-type@~1.0.4: version "1.0.4" @@ -2051,34 +2006,34 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -core-js-compat@^3.14.0, core-js-compat@^3.16.0: - version "3.16.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.3.tgz#ae12a6e20505a1d79fbd16b6689dfc77fc989114" - integrity sha512-A/OtSfSJQKLAFRVd4V0m6Sep9lPdjD8bpN8v3tCCGwE0Tmh0hOiVDm9tw6mXmWOKOSZIyr3EkywPo84cJjGvIQ== +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.22.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.2.tgz#eec621eb276518efcf718d0a6d9d042c3d0cad48" + integrity sha512-Fns9lU06ZJ07pdfmPMu7OnkIKGPKDzXKIiuGlSvHHapwqMUF2QnnsWwtueFZtSyZEilP0o6iUeHQwpn7LxtLUw== dependencies: - browserslist "^4.16.8" + browserslist "^4.20.2" semver "7.0.0" -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cors@~2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -2087,6 +2042,13 @@ cors@~2.8.5: object-assign "^4" vary "^1" +cross-fetch@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2106,9 +2068,9 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: which "^2.0.1" csstype@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" - integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== + version "3.0.11" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" + integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== custom-event@~1.0.0: version "1.0.1" @@ -2122,34 +2084,22 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-format@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" - integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== - -date-format@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" - integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== +date-format@^4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.9.tgz#4788015ac56dedebe83b03bc361f00c1ddcf1923" + integrity sha512-+8J+BOUpSrlKLQLeF8xJJVTxS8QfRSuJgwxSVvslzgO3E6khbI0F5mMEPf5mTYhCCm4h99knYP6H3W9n3BQFrg== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -2160,29 +2110,12 @@ debug@^3.1.1: dependencies: ms "^2.1.1" -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -default-gateway@^6.0.0: +default-gateway@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== @@ -2194,105 +2127,60 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" - integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== +define-properties@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-node@^2.0.4: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -devtools-protocol@0.0.901419: - version "0.0.901419" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.901419.tgz#79b5459c48fe7e1c5563c02bd72f8fec3e0cebcd" - integrity sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ== +devtools-protocol@0.0.981744: + version "0.0.981744" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.981744.tgz#9960da0370284577d46c28979a0b32651022bacf" + integrity sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg== di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= +dns-packet@^5.2.2: + version "5.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" + integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== dependencies: - buffer-indexof "^1.0.0" + "@leichtgewicht/ip-codec" "^2.0.1" doctrine@^2.1.0: version "2.1.0" @@ -2331,10 +2219,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.811: - version "1.3.818" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.818.tgz#32ed024fa8316e5d469c96eecbea7d2463d80085" - integrity sha512-c/Z9gIr+jDZAR9q+mn40hEc1NharBT+8ejkarjbCDnBNFviI6hvcC5j2ezkAXru//bTnQp5n6iPi0JA83Tla1Q== +electron-to-chromium@^1.4.118: + version "1.4.122" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz#56e518e8c4433876b01d4460eac0f653841ed510" + integrity sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw== emoji-regex@^8.0.0: version "8.0.0" @@ -2358,41 +2246,37 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-parser@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" - integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== +engine.io-parser@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.3.tgz#ca1f0d7b11e290b4bfda251803baea765ed89c09" + integrity sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg== dependencies: - base64-arraybuffer "0.1.4" + "@socket.io/base64-arraybuffer" "~1.0.2" -engine.io@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-4.1.1.tgz#9a8f8a5ac5a5ea316183c489bf7f5b6cf91ace5b" - integrity sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w== +engine.io@~6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" + integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "2.0.0" cookie "~0.4.1" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~4.0.0" - ws "~7.4.2" + engine.io-parser "~5.0.3" + ws "~8.2.3" -enhanced-resolve@^5.8.0: - version "5.8.2" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" - integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== +enhanced-resolve@^5.9.2: + version "5.9.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" + integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" @@ -2403,33 +2287,43 @@ envinfo@^7.7.3: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2, es-abstract@^1.18.5: - version "1.18.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" - integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== +es-abstract@^1.18.5, es-abstract@^1.19.1, es-abstract@^1.19.2: + version "1.19.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" + integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" has "^1.0.3" - has-symbols "^1.0.2" + has-symbols "^1.0.3" internal-slot "^1.0.3" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.11.0" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-module-lexer@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" - integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" @@ -2470,23 +2364,25 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-plugin-react@^7.24.0: - version "7.24.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz#eadedfa351a6f36b490aa17f4fa9b14e842b9eb4" - integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q== +eslint-plugin-react@^7.29.4: + version "7.29.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" + integrity sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ== dependencies: - array-includes "^3.1.3" - array.prototype.flatmap "^1.2.4" + array-includes "^3.1.4" + array.prototype.flatmap "^1.2.5" doctrine "^2.1.0" - has "^1.0.3" + estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.0.4" - object.entries "^1.1.4" - object.fromentries "^2.0.4" - object.values "^1.1.4" - prop-types "^15.7.2" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.0" + object.values "^1.1.5" + prop-types "^15.8.1" resolve "^2.0.0-next.3" - string.prototype.matchall "^4.0.5" + semver "^6.3.0" + string.prototype.matchall "^4.0.6" eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" @@ -2496,82 +2392,80 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.3.0" + estraverse "^5.2.0" -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.32.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^8.14.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.14.0.tgz#62741f159d9eb4a79695b28ec4989fcdec623239" + integrity sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw== dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" + "@eslint/eslintrc" "^1.2.2" + "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" + glob-parent "^6.0.1" globals "^13.6.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" + regexpp "^3.2.0" + strip-ansi "^6.0.1" strip-json-comments "^3.1.0" - table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" + integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== dependencies: - acorn "^7.4.0" + acorn "^8.7.0" acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + eslint-visitor-keys "^3.3.0" esquery@^1.4.0: version "1.4.0" @@ -2592,10 +2486,10 @@ estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" @@ -2632,89 +2526,48 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" +express@^4.17.3: + version "4.18.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2" + integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg== + dependencies: + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" + body-parser "1.20.0" + content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.0" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" + proxy-addr "~2.0.7" + qs "6.10.3" range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - extract-zip@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" @@ -2742,26 +2595,15 @@ extsprintf@1.3.0: integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -2777,13 +2619,6 @@ fastest-levenshtein@^1.0.12: resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== -fastq@^1.6.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" - integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== - dependencies: - reusify "^1.0.4" - faye-websocket@^0.11.3: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" @@ -2810,16 +2645,6 @@ file-size@0.0.5: resolved "https://registry.yarnpkg.com/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" integrity sha1-BX1Dw6Ptc12j+Q1gUqs4Dx5tXjs= -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2827,7 +2652,7 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.1.2, finalhandler@~1.1.2: +finalhandler@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== @@ -2840,10 +2665,23 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" make-dir "^3.0.2" @@ -2865,30 +2703,20 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flatted@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== +flatted@^3.1.0, flatted@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== -flow-bin@^0.158.0: - version "0.158.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.158.0.tgz#0a09763d41eb8ec7135ced6a3b9f8fa370a393d8" - integrity sha512-Gk5md8XTwk/M+J5M+rFyS1LJfFen6ldY60jM9+meWixlKf4b0vwdoUO8R7oo471pze+GY+blrnskUeqLDxFJfg== +flow-bin@^0.176.3: + version "0.176.3" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.176.3.tgz#d32de04e044ab474afe543b9fd245608bb6a6ac8" + integrity sha512-lbNqgjr2GlGLAEVp5+dhG4LdnFE7ekbvVNifAdlvTx58/nE8GrCOMiUwEQy4dLnfL2NIRMk2dbEVTrugeQJ3mA== follow-redirects@^1.0.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b" - integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + version "1.14.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== foreach@^2.0.5: version "2.0.5" @@ -2914,13 +2742,6 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -2940,14 +2761,14 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" + jsonfile "^6.0.1" + universalify "^2.0.0" fs-monkey@1.0.3: version "1.0.3" @@ -2979,6 +2800,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -3010,10 +2836,13 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" getpass@^0.1.1: version "0.1.7" @@ -3022,7 +2851,14 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -3035,9 +2871,9 @@ glob-to-regexp@^0.4.1: integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob@^7.0.0, glob@^7.1.3, glob@^7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3052,28 +2888,16 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" - integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== + version "13.13.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" + integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== dependencies: type-fest "^0.20.2" -globby@^11.0.1: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== handle-thing@^2.0.0: version "2.0.1" @@ -3100,10 +2924,10 @@ has-ansi@^0.1.0: dependencies: ansi-regex "^0.2.0" -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" @@ -3115,10 +2939,17 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" @@ -3127,37 +2958,6 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3184,25 +2984,25 @@ hpack.js@^2.1.6: wbuf "^1.1.0" html-entities@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" - integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" http-errors@~1.6.2: version "1.6.3" @@ -3214,28 +3014,17 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + version "0.5.6" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" + integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== -http-proxy-middleware@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz#7ef3417a479fb7666a571e09966c66a39bd2c15f" - integrity sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg== +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== dependencies: - "@types/http-proxy" "^1.17.5" + "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" is-glob "^4.0.1" is-plain-obj "^3.0.0" @@ -3284,15 +3073,10 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -3303,9 +3087,9 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: resolve-from "^4.0.0" import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -3315,11 +3099,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3338,16 +3117,6 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -internal-ip@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-6.2.0.tgz#d5541e79716e406b74ac6b07b856ef18dc1621c1" - integrity sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== - dependencies: - default-gateway "^6.0.0" - ipaddr.js "^1.9.1" - is-ip "^3.1.0" - p-event "^4.2.0" - internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -3362,17 +3131,7 @@ interpret@^2.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -ip-regex@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - -ip@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.1: +ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== @@ -3382,20 +3141,6 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -3411,13 +3156,6 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -3433,37 +3171,18 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.3: +is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" - integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== +is-core-module@^2.2.0, is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -3471,41 +3190,11 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3523,20 +3212,13 @@ is-generator-function@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -3545,53 +3227,36 @@ is-nan@^1.2.1: call-bind "^1.0.0" define-properties "^1.1.3" -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.1.3: +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -3599,6 +3264,13 @@ is-regex@^1.0.4, is-regex@^1.1.3: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + is-stream@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -3609,7 +3281,7 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.5, is-string@^1.0.6: +is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== @@ -3623,12 +3295,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.3, is-typed-array@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.7.tgz#881ddc660b13cb8423b2090fa88c0fe37a83eb2f" - integrity sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA== +is-typed-array@^1.1.3, is-typed-array@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" + integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== dependencies: - available-typed-arrays "^1.0.4" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" es-abstract "^1.18.5" foreach "^2.0.5" @@ -3639,10 +3311,12 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-windows@^1.0.2: +is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" is-wsl@^2.2.0: version "2.2.0" @@ -3651,29 +3325,22 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isbinaryfile@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" - integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: +isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= @@ -3683,15 +3350,15 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jasmine-core@^3.6.0, jasmine-core@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.9.0.tgz#09a3c8169fe98ec69440476d04a0e4cb4d59e452" - integrity sha512-Tv3kVbPCGVrjsnHBZ38NsPU3sDOtNa0XmbG2baiyJqdb5/SPpDO6GVwJYtUryl6KB4q1Ssckwg612ES9Z0dreQ== +jasmine-core@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-4.1.0.tgz#2377349b0e8bfd3fbdb36c9e4f09e3b1a17cf5c2" + integrity sha512-8E8BiffCL8sBwK1zU9cbavLe8xpJAgOduSJ6N8PJVv8VosQ/nxVTuXj2kUeHxTlZBVvh24G19ga7xdiaxlceKg== -jest-worker@^27.0.2: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" - integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -3702,13 +3369,12 @@ jest-worker@^27.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: - argparse "^1.0.7" - esprima "^4.0.0" + argparse "^2.0.1" jsbn@~0.1.0: version "0.1.1" @@ -3740,10 +3406,10 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" @@ -3755,19 +3421,10 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" +json5@^2.1.2, json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== jsonfile@^2.1.0: version "2.4.0" @@ -3776,35 +3433,37 @@ jsonfile@^2.1.0: optionalDependencies: graceful-fs "^4.1.6" -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.2.3" + json-schema "0.4.0" verror "1.10.0" "jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" - integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + version "3.2.2" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz#6ab1e52c71dfc0c0707008a91729a9491fe9f76c" + integrity sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw== dependencies: - array-includes "^3.1.2" + array-includes "^3.1.4" object.assign "^4.1.2" -karma-chrome-launcher@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz#805a586799a4d05f4e54f72a204979f3f3066738" - integrity sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg== +karma-chrome-launcher@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz#baca9cc071b1562a1db241827257bfe5cab597ea" + integrity sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ== dependencies: which "^1.2.1" @@ -3815,10 +3474,10 @@ karma-cli@2.0.0: dependencies: resolve "^1.3.3" -karma-firefox-launcher@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.1.tgz#6457226f8e4f091b664cef79bb5d39bf1e008765" - integrity sha512-VzDMgPseXak9DtfyE1O5bB2BwsMy1zzO1kUxVW1rP0yhC4tDNJ0p3JoFdzvrK4QqVzdqUMa9Rx9YzkdFp8hz3Q== +karma-firefox-launcher@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz#9a38cc783c579a50f3ed2a82b7386186385cfc2d" + integrity sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA== dependencies: is-wsl "^2.2.0" which "^2.0.1" @@ -3830,12 +3489,12 @@ karma-ie-launcher@^1.0.0: dependencies: lodash "^4.6.1" -karma-jasmine@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-4.0.1.tgz#b99e073b6d99a5196fc4bffc121b89313b0abd82" - integrity sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw== +karma-jasmine@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-5.0.0.tgz#e270c86214b5390df77ebe1b6eaab79664d87d9f" + integrity sha512-dsFkCoTwyoNyQnMgegS72wIA/2xPDJG5yzTry0448U6lAY7P60Wgg4UuLlbdLv8YHbimgNpDXjjmfPdc99EDWQ== dependencies: - jasmine-core "^3.6.0" + jasmine-core "^4.1.0" karma-phantomjs-launcher@^1.0.4: version "1.0.4" @@ -3859,15 +3518,15 @@ karma-webpack@^5.0.0: minimatch "^3.0.4" webpack-merge "^4.1.5" -karma@^6.3.4: - version "6.3.4" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.3.4.tgz#359899d3aab3d6b918ea0f57046fd2a6b68565e6" - integrity sha512-hbhRogUYIulfkBTZT7xoPrCYhRBnBoqbbL4fszWD0ReFGUxU+LYBr3dwKdAluaDQ/ynT9/7C+Lf7pPNW4gSx4Q== +karma@^6.3.19: + version "6.3.19" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.3.19.tgz#e50759667b0b9c6ad758655db0547d3ab4d2abf5" + integrity sha512-NDhWckzES/Y9xMiddyU1RzaKL76/scCsu8Mp0vR0Z3lQRvC3p72+Ab4ppoxs36S9tyPNX5V48yvaV++RNEBPZw== dependencies: + "@colors/colors" "1.5.0" body-parser "^1.19.0" braces "^3.0.2" chokidar "^3.5.1" - colors "^1.4.0" connect "^3.7.0" di "^0.0.1" dom-serialize "^2.2.1" @@ -3876,16 +3535,17 @@ karma@^6.3.4: http-proxy "^1.18.1" isbinaryfile "^4.0.8" lodash "^4.17.21" - log4js "^6.3.0" + log4js "^6.4.1" mime "^2.5.2" minimatch "^3.0.4" + mkdirp "^0.5.5" qjobs "^1.2.0" range-parser "^1.2.1" rimraf "^3.0.2" - socket.io "^3.1.0" + socket.io "^4.4.1" source-map "^0.6.1" tmp "^0.2.1" - ua-parser-js "^0.7.28" + ua-parser-js "^0.7.30" yargs "^16.1.1" kew@^0.7.0: @@ -3893,26 +3553,7 @@ kew@^0.7.0: resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s= -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -3933,18 +3574,18 @@ levn@^0.4.1: type-check "~0.4.0" loader-runner@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" - integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== +loader-utils@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" - json5 "^1.0.1" + json5 "^2.1.2" locate-path@^5.0.0: version "5.0.0" @@ -3953,11 +3594,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -3968,26 +3604,26 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= lodash@^4.0.1, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.6.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log4js@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" - integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== +log4js@^6.4.1: + version "6.4.6" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.4.6.tgz#1878aa3f09973298ecb441345fe9dd714e355c15" + integrity sha512-1XMtRBZszmVZqPAOOWczH+Q94AI42mtNWjvjA5RduKTSWjEc56uOBbyM1CJnfN4Ym0wSd8cQ43zOojlSHgRDAw== dependencies: - date-format "^3.0.0" - debug "^4.1.1" - flatted "^2.0.1" - rfdc "^1.1.4" - streamroller "^2.2.4" + date-format "^4.0.9" + debug "^4.3.4" + flatted "^3.2.5" + rfdc "^1.3.0" + streamroller "^3.0.8" loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" @@ -4026,42 +3662,15 @@ make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" - integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== - dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^3.1.0" - -memfs@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" - integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== +memfs@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" + integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== dependencies: fs-monkey "1.0.3" @@ -4075,54 +3684,30 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== +micromatch@^4.0.2: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" -mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": - version "1.49.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.32" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.49.0" + mime-db "1.52.0" mime@1.6.0, mime@^1.2.11: version "1.6.0" @@ -4130,138 +3715,98 @@ mime@1.6.0, mime@^1.2.11: integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== - minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^3.0.4, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.5, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== +mkdirp@^0.5.4, mkdirp@^0.5.5: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "^1.2.5" + minimist "^1.2.6" ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@2.1.3, ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== +multicast-dns@^7.2.4: + version "7.2.4" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.4.tgz#cf0b115c31e922aeb20b64e6556cbeb34cf0dd19" + integrity sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw== dependencies: - dns-packet "^1.3.1" + dns-packet "^5.2.2" thunky "^1.0.2" -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" -node-releases@^1.1.75: - version "1.1.75" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" - integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" +node-releases@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" + integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -4285,19 +3830,10 @@ object-assign@^4, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== object-is@^1.0.1: version "1.1.5" @@ -4307,18 +3843,11 @@ object-is@^1.0.1: call-bind "^1.0.2" define-properties "^1.1.3" -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" @@ -4329,46 +3858,53 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" - integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== +object.entries@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" + integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.19.1" -object.fromentries@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" - integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== +object.fromentries@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" + es-abstract "^1.19.1" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= +object.hasown@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" + integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== dependencies: - isobject "^3.0.1" + define-properties "^1.1.3" + es-abstract "^1.19.1" -object.values@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" - integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== +object.values@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.19.1" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -4396,9 +3932,9 @@ onetime@^5.1.2: mimic-fn "^2.1.0" open@^8.0.9: - version "8.2.1" - resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" - integrity sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ== + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" @@ -4421,23 +3957,6 @@ os-shim@^0.1.2: resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-event@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" - integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== - dependencies: - p-timeout "^3.1.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -4445,13 +3964,6 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -4459,13 +3971,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-retry@^4.5.0: version "4.6.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" @@ -4474,13 +3979,6 @@ p-retry@^4.5.0: "@types/retry" "^0.12.0" retry "^0.13.1" -p-timeout@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -4498,11 +3996,6 @@ parseurl@~1.3.2, parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4518,7 +4011,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -4528,11 +4021,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -4558,10 +4046,15 @@ phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: request-progress "^2.0.1" which "^1.2.10" -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^4.0.1: version "4.0.1" @@ -4596,11 +4089,6 @@ portfinder@^1.0.28: debug "^3.1.1" mkdirp "^0.5.5" -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - pre-commit@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" @@ -4625,31 +4113,26 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" - integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== +progress@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== +prop-types@^15.6.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" - react-is "^16.8.1" + react-is "^16.13.1" -proxy-addr@~2.0.5: +proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== @@ -4680,58 +4163,45 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.2.0.tgz#7d8d7fda91e19a7cfd56986e0275448e6351849e" - integrity sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw== +puppeteer@^13.6.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-13.6.0.tgz#3583fc60c1af59af838d65a09680f2d07f3608f9" + integrity sha512-EJXhTyY5bXNPLFXPGcY9JaF6EKJIX8ll8cGG3WUK+553Jx96oDf1cB+lkFOro9p0X16tY+9xx7zYWl+vnWgW2g== dependencies: - debug "4.3.1" - devtools-protocol "0.0.901419" + cross-fetch "3.1.5" + debug "4.3.4" + devtools-protocol "0.0.981744" extract-zip "2.0.1" https-proxy-agent "5.0.0" - node-fetch "2.6.1" pkg-dir "4.2.0" - progress "2.0.1" + progress "2.0.3" proxy-from-env "1.1.0" rimraf "3.0.2" - tar-fs "2.0.0" - unbzip2-stream "1.3.3" - ws "7.4.6" + tar-fs "2.1.1" + unbzip2-stream "1.4.3" + ws "8.5.0" qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== randombytes@^2.1.0: version "2.1.0" @@ -4745,13 +4215,13 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: - bytes "3.1.0" - http-errors "1.7.2" + bytes "3.1.2" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" @@ -4765,12 +4235,12 @@ react-dom@^16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-frame-component@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-5.1.0.tgz#a4bd4c598a19103050ea7a1a562e6e03164f724d" - integrity sha512-5L55L2aMzTbA+fUy5EEl1pxTXbKGGtF3giZkkTExf0lw8AQ4u1ZvZDUVBcynKl7CA7F2aF+RZUL17B+fRE9+DA== +react-frame-component@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-5.2.1.tgz#6bd5ec73ef7d720f57ee8f259546ed926a941267" + integrity sha512-nrSh1OZuHlX69eWqJPiUkPT9S6/wxc4PpJV+vOQ4pHQQ8XmIsIT+utWT+nX32ZfANHZuKONA7JsWMUGT36CqaQ== -react-is@^16.8.1, react-is@^16.8.6: +react-is@^16.13.1, react-is@^16.8.6: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -4794,7 +4264,7 @@ react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2: +readable-stream@^2.0.1, readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -4816,15 +4286,6 @@ readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -4839,14 +4300,14 @@ rechoir@^0.7.0: dependencies: resolve "^1.9.0" -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: - regenerate "^1.4.0" + regenerate "^1.4.2" -regenerate@^1.4.0: +regenerate@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== @@ -4856,73 +4317,51 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== dependencies: "@babel/runtime" "^7.8.4" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== +regexp.prototype.flags@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" + functions-have-names "^1.2.2" -regexpp@^3.1.0: +regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== -regjsparser@^0.6.4: - version "0.6.9" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" - integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - request-progress@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" @@ -4988,18 +4427,14 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - resolve@^1.14.2, resolve@^1.3.3, resolve@^1.9.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.3: version "2.0.0-next.3" @@ -5009,22 +4444,12 @@ resolve@^2.0.0-next.3: is-core-module "^2.2.0" path-parse "^1.0.6" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.1.4: +rfdc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== @@ -5036,30 +4461,16 @@ rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -5082,7 +4493,7 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.0: +schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -5091,17 +4502,27 @@ schema-utils@^3.0.0, schema-utils@^3.1.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^1.10.11: - version "1.10.11" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== +selfsigned@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" + integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== dependencies: - node-forge "^0.10.0" + node-forge "^1" semver@7.0.0: version "7.0.0" @@ -5118,31 +4539,31 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== +semver@^7.3.7: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.7.2" + http-errors "2.0.0" mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" + ms "2.1.3" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" serialize-javascript@^6.0.0: version "6.0.0" @@ -5164,35 +4585,25 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.1" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" + send "0.18.0" setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shallow-clone@^3.0.0: version "3.0.1" @@ -5235,65 +4646,21 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socket.io-adapter@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz#edc5dc36602f2985918d631c1399215e97a1b527" - integrity sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg== +socket.io-adapter@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" + integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== -socket.io-parser@~4.0.3: +socket.io-parser@~4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== @@ -5302,55 +4669,36 @@ socket.io-parser@~4.0.3: component-emitter "~1.3.0" debug "~4.3.1" -socket.io@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-3.1.2.tgz#06e27caa1c4fc9617547acfbb5da9bc1747da39a" - integrity sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw== +socket.io@^4.4.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.0.tgz#78ae2e84784c29267086a416620c18ef95b37186" + integrity sha512-slTYqU2jCgMjXwresG8grhUi/cC6GjzmcfqArzaH3BN/9I/42eZk9yamNvZJdBfTubkjEdKAKs12NEztId+bUA== dependencies: - "@types/cookie" "^0.4.0" - "@types/cors" "^2.8.8" - "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "~2.0.0" - debug "~4.3.1" - engine.io "~4.1.0" - socket.io-adapter "~2.1.0" - socket.io-parser "~4.0.3" + debug "~4.3.2" + engine.io "~6.2.0" + socket.io-adapter "~2.4.0" + socket.io-parser "~4.0.4" sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== dependencies: faye-websocket "^0.11.3" - uuid "^3.4.0" + uuid "^8.3.2" websocket-driver "^0.7.4" -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -5360,10 +4708,12 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@~0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" spawn-sync@^1.0.15: version "1.0.15" @@ -5396,22 +4746,10 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -5423,14 +4761,6 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - static-server@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/static-server/-/static-server-3.0.0.tgz#50c5adb318bcdf6547f4b36c272e8c53df829030" @@ -5441,41 +4771,46 @@ static-server@^3.0.0: file-size "0.0.5" mime "^1.2.11" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -streamroller@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" - integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== +streamroller@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.0.8.tgz#84b190e4080ee311ca1ebe0444e30ac8eedd028d" + integrity sha512-VI+ni3czbFZrd1MrlybxykWZ8sMDCMtTU7YJyhgb9M5X6d1DDxLdJr+gSnmRpXPMnIWxWKMaAE8K0WumBp3lDg== dependencies: - date-format "^2.1.0" - debug "^4.1.1" - fs-extra "^8.1.0" + date-format "^4.0.9" + debug "^4.3.4" + fs-extra "^10.1.0" string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" -string.prototype.matchall@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" - integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== +string.prototype.matchall@^4.0.6: + version "4.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" + integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.19.1" get-intrinsic "^1.1.1" - has-symbols "^1.0.2" + has-symbols "^1.0.3" internal-slot "^1.0.3" - regexp.prototype.flags "^1.3.1" + regexp.prototype.flags "^1.4.1" side-channel "^1.0.4" string.prototype.trimend@^1.0.4: @@ -5515,19 +4850,12 @@ strip-ansi@^0.3.0: dependencies: ansi-regex "^0.2.1" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.0.tgz#1dc49b980c3a4100366617adac59327eefdefcb0" - integrity sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg== +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^6.0.0" + ansi-regex "^5.0.1" strip-final-newline@^2.0.0: version "2.0.0" @@ -5565,34 +4893,27 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -table@^6.0.9: - version "6.7.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" - integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== - dependencies: - ajv "^8.0.1" - lodash.clonedeep "^4.5.0" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.0" - strip-ansi "^6.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tapable@^2.1.1, tapable@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" - integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" - integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== +tar-fs@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== dependencies: chownr "^1.1.1" - mkdirp "^0.5.1" + mkdirp-classic "^0.5.2" pump "^3.0.0" - tar-stream "^2.0.0" + tar-stream "^2.1.4" -tar-stream@^2.0.0: +tar-stream@^2.1.4: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -5604,25 +4925,25 @@ tar-stream@^2.0.0: readable-stream "^3.1.1" terser-webpack-plugin@^5.1.3: - version "5.1.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" - integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== + version "5.3.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" + integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== dependencies: - jest-worker "^27.0.2" - p-limit "^3.1.0" - schema-utils "^3.0.0" + jest-worker "^27.4.5" + schema-utils "^3.1.1" serialize-javascript "^6.0.0" source-map "^0.6.1" - terser "^5.7.0" + terser "^5.7.2" -terser@^5.7.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f" - integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw== +terser@^5.7.2: + version "5.13.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.0.tgz#d43fd71861df1b4df743980caa257c6fa03acc44" + integrity sha512-sgQ99P+fRBM1jAYzN9RTnD/xEWx/7LZgYTCRgmYriSq1wxxqiQPJgXkkLBBuwySDWJ2PP0PnVQyuf4xLUuH4Ng== dependencies: + acorn "^8.5.0" commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" + source-map "~0.8.0-beta.0" + source-map-support "~0.5.20" text-table@^0.2.0: version "0.2.0" @@ -5656,21 +4977,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -5678,20 +4984,10 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tough-cookie@~2.5.0: version "2.5.0" @@ -5701,6 +4997,18 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -5725,7 +5033,7 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-is@~1.6.17, type-is@~1.6.18: +type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -5738,90 +5046,67 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== +typescript@^4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" + integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== -ua-parser-js@^0.7.28: - version "0.7.28" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" - integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== +ua-parser-js@^0.7.30: + version "0.7.31" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" + integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unbzip2-stream@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" - integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== +unbzip2-stream@1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== dependencies: buffer "^5.2.1" through "^2.3.8" -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5829,24 +5114,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5869,12 +5136,17 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== @@ -5898,10 +5170,10 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" - integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== +watchpack@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" + integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -5913,67 +5185,79 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -webpack-cli@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.8.0.tgz#5fc3c8b9401d3c8a43e2afceacfa8261962338d1" - integrity sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw== +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-cli@^4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" + integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.0.4" - "@webpack-cli/info" "^1.3.0" - "@webpack-cli/serve" "^1.5.2" - colorette "^1.2.1" + "@webpack-cli/configtest" "^1.1.1" + "@webpack-cli/info" "^1.4.1" + "@webpack-cli/serve" "^1.6.1" + colorette "^2.0.14" commander "^7.0.0" execa "^5.0.0" fastest-levenshtein "^1.0.12" import-local "^3.0.2" interpret "^2.2.0" rechoir "^0.7.0" - v8-compile-cache "^2.2.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" - integrity sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw== +webpack-dev-middleware@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz#aa079a8dedd7e58bfeab358a9af7dab304cee57f" + integrity sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg== dependencies: - colorette "^1.2.2" - mem "^8.1.1" - memfs "^3.2.2" + colorette "^2.0.10" + memfs "^3.4.1" mime-types "^2.1.31" range-parser "^1.2.1" - schema-utils "^3.0.0" - -webpack-dev-server@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.0.0.tgz#fb4906e91182154bba54a66e6e06f84c1e3c0a80" - integrity sha512-ya5cjoBSf3LqrshZn2HMaRZQx8YRNBE+tx+CQNFGaLLHrvs4Y1aik0sl5SFhLz2cW1O9/NtyaZhthc+8UiuvkQ== - dependencies: - ansi-html "^0.0.7" - bonjour "^3.5.0" - chokidar "^3.5.1" - colorette "^1.2.2" + schema-utils "^4.0.0" + +webpack-dev-server@^4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz#58f9d797710d6e25fa17d6afab8708f958c11a29" + integrity sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.1" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^1.6.0" - del "^6.0.0" - express "^4.17.1" + default-gateway "^6.0.3" + express "^4.17.3" graceful-fs "^4.2.6" html-entities "^2.3.2" - http-proxy-middleware "^2.0.0" - internal-ip "^6.2.0" + http-proxy-middleware "^2.0.3" ipaddr.js "^2.0.1" open "^8.0.9" p-retry "^4.5.0" portfinder "^1.0.28" - schema-utils "^3.1.0" - selfsigned "^1.10.11" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.0.1" serve-index "^1.9.1" sockjs "^0.3.21" spdy "^4.0.2" - strip-ansi "^7.0.0" - url "^0.11.0" - webpack-dev-middleware "^5.0.0" - ws "^8.1.0" + webpack-dev-middleware "^5.3.1" + ws "^8.4.2" webpack-merge@^4.1.5: version "4.2.2" @@ -5990,18 +5274,18 @@ webpack-merge@^5.7.3: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" - integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.51.1: - version "5.51.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.51.1.tgz#41bebf38dccab9a89487b16dbe95c22e147aac57" - integrity sha512-xsn3lwqEKoFvqn4JQggPSRxE4dhsRcysWTqYABAZlmavcoTmwlOb9b1N36Inbt/eIispSkuHa80/FJkDTPos1A== +webpack@^5.72.0: + version "5.72.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.0.tgz#f8bc40d9c6bb489a4b7a8a685101d6022b8b6e28" + integrity sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w== dependencies: - "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.50" + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/wasm-edit" "1.11.1" "@webassemblyjs/wasm-parser" "1.11.1" @@ -6009,12 +5293,12 @@ webpack@^5.51.1: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.0" - es-module-lexer "^0.7.1" + enhanced-resolve "^5.9.2" + es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" json-parse-better-errors "^1.0.2" loader-runner "^4.2.0" mime-types "^2.1.27" @@ -6022,8 +5306,8 @@ webpack@^5.51.1: schema-utils "^3.1.0" tapable "^2.1.1" terser-webpack-plugin "^5.1.3" - watchpack "^2.2.0" - webpack-sources "^3.2.0" + watchpack "^2.3.1" + webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -6039,6 +5323,23 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -6051,16 +5352,16 @@ which-boxed-primitive@^1.0.2: is-symbol "^1.0.3" which-typed-array@^1.1.2: - version "1.1.6" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.6.tgz#f3713d801da0720a7f26f50c596980a9f5c8b383" - integrity sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q== + version "1.1.7" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" + integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== dependencies: - available-typed-arrays "^1.0.4" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" es-abstract "^1.18.5" foreach "^2.0.5" has-tostringtag "^1.0.0" - is-typed-array "^1.1.6" + is-typed-array "^1.1.7" which@1.2.x: version "1.2.14" @@ -6107,15 +5408,15 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@7.4.6, ws@~7.4.2: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@8.5.0, ws@^8.4.2: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -ws@^8.1.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.0.tgz#0b738cd484bfc9303421914b11bb4011e07615bb" - integrity sha512-uYhVJ/m9oXwEI04iIVmgLmugh2qrZihkywG9y5FfZV2ATeLIzHf93qs+tUNqlttbQK957/VX3mtwAS+UfIwA4g== +ws@~8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== y18n@^5.0.5: version "5.0.8" @@ -6157,8 +5458,3 @@ yauzl@^2.10.0: dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 5579f960c72c2bbc2f6ad100280129cca94e4a5b Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 26 Apr 2022 14:03:03 -0400 Subject: [PATCH 398/412] chore(test): fix various test failures caused by new pkgs --- .flowconfig | 1 + karma.conf.js | 7 +- lib/DraggableCore.js | 3 +- specs/draggable.spec.jsx | 260 ++++++++++++++++++++------------------- 4 files changed, 138 insertions(+), 133 deletions(-) diff --git a/.flowconfig b/.flowconfig index 8a48fd4c..78ac9c8e 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,5 +1,6 @@ [ignore] /node_modules/webpack-cli.* +/node_modules/resolve.* [include] lib/ diff --git a/karma.conf.js b/karma.conf.js index 3cd82758..65304c18 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -10,8 +10,6 @@ module.exports = function(config) { require('./webpack.config.js')({}, {}), { mode: 'development', - // Remove source maps: *speeeeeed* - devtool: false, cache: true, performance: { hints: false, @@ -64,7 +62,10 @@ module.exports = function(config) { autoWatch: false, - browsers: ['Firefox', 'ChromeHeadless'], + browsers: [ + 'Firefox', + 'ChromeHeadless' + ], singleRun: true, }); diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 5c448a28..4827f36c 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -387,7 +387,8 @@ export default class DraggableCore extends React.Component
); - assert(drag.props.axis === 'both'); + assert.equal(drag.props.axis, 'both'); assert(drag.props.bounds == false); - assert(typeof drag.props.onStart === 'function'); - assert(typeof drag.props.onDrag === 'function'); - assert(typeof drag.props.onStop === 'function'); + assert.equal(typeof drag.props.onStart, 'function'); + assert.equal(typeof drag.props.onDrag, 'function'); + assert.equal(typeof drag.props.onStop, 'function'); }); it('should pass style and className properly from child', function () { @@ -52,11 +52,11 @@ describe('react-draggable', function () { const node = renderToNode(drag); // Touch-action hack has been removed if ('touchAction' in document.body.style) { - assert(node.getAttribute('style').indexOf('touch-action: none') === -1); + assert.equal(node.getAttribute('style').indexOf('touch-action: none'), -1); } assert(node.getAttribute('style').indexOf('color: black') >= 0); assert(new RegExp(transformStyle + ': translate\\(0px(?:, 0px)?\\)').test(node.getAttribute('style'))); - assert(node.getAttribute('class') === 'foo react-draggable'); + assert.equal(node.getAttribute('class'), 'foo react-draggable'); }); it('should set the appropriate custom className when dragging or dragged', function () { @@ -124,21 +124,21 @@ describe('react-draggable', function () { ); - assert(drag.props.axis === 'y'); - assert(drag.props.handle === '.handle'); - assert(drag.props.cancel === '.cancel'); + assert.equal(drag.props.axis, 'y'); + assert.equal(drag.props.handle, '.handle'); + assert.equal(drag.props.cancel, '.cancel'); assert(_.isEqual(drag.props.grid, [10, 10])); - assert(drag.props.onStart === handleStart); - assert(drag.props.onDrag === handleDrag); - assert(drag.props.onStop === handleStop); + assert.equal(drag.props.onStart, handleStart); + assert.equal(drag.props.onDrag, handleDrag); + assert.equal(drag.props.onStop, handleStop); }); it('should adjust draggable data output when `scale` prop supplied', function () { function onDrag(event, data) { - assert(data.x === 200); - assert(data.y === 200); - assert(data.deltaX === 200); - assert(data.deltaY === 200); + assert.equal(data.x, 200); + assert.equal(data.y, 200); + assert.equal(data.deltaX, 200); + assert.equal(data.deltaY, 200); } drag = TestUtils.renderIntoDocument( = 0); }); @@ -268,7 +268,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); const style = node.getAttribute('style'); - assert(dragged === true); + assert.equal(dragged, true); assert(style.indexOf('translate(10%, 10%) translate(100px, 100px);') >= 0); }); @@ -284,7 +284,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); const style = node.getAttribute('style'); - assert(dragged === true); + assert.equal(dragged, true); assert(/transform: translate\(100px(?:, 0px)?\);/.test(style)); }); @@ -300,7 +300,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); const style = node.getAttribute('style'); - assert(dragged === true); + assert.equal(dragged, true); assert(style.indexOf('transform: translate(0px, 100px);') >= 0); }); @@ -316,7 +316,7 @@ describe('react-draggable', function () { simulateMovementFromTo(drag, 0, 0, 100, 100); const style = node.getAttribute('style'); - assert(dragged === true); + assert.equal(dragged, true); assert(/transform: translate\(0px(?:, 0px)?\);/.test(style)); }); @@ -327,7 +327,7 @@ describe('react-draggable', function () { ); - assert(drag.state.isElementSVG === true); + assert.equal(drag.state.isElementSVG, true); }); it('should detect if an element is NOT an instanceof SVGElement and set state.isElementSVG to false', function() { @@ -337,7 +337,7 @@ describe('react-draggable', function () { ); - assert(drag.state.isElementSVG === false); + assert.equal(drag.state.isElementSVG, false); }); it('should render with transform translate() for SVG nodes', function () { @@ -439,9 +439,9 @@ describe('react-draggable', function () { const input = dragEl.querySelector('input'); input.focus(); - assert(window.getSelection().type === 'Caret', 'Element should be focused before draggable unmounts'); + assert.equal(window.getSelection().type, 'Caret', 'Element should be focused before draggable unmounts'); TestUtils.Simulate.keyDown(input, {key: 'a', keyCode: 65, which: 65}); - assert(window.getSelection().type === 'Caret', 'Element should be focused after draggable unmounts'); + assert.equal(window.getSelection().type, 'Caret', 'Element should be focused after draggable unmounts'); document.body.removeChild(dragEl); }); @@ -453,17 +453,18 @@ describe('react-draggable', function () { ); const renderRoot = document.body.appendChild(document.createElement('div')); - const frame = ReactDOM.render({ dragElement }, renderRoot); + const ref = React.createRef(); + const frame = ReactDOM.render({ dragElement }, renderRoot); setTimeout(function checkIframe() { - const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; - if (!(iframeDoc && iframeDoc.body)) return setTimeout(checkIframe, 50); - const node = iframeDoc.body.querySelector('.react-draggable'); + const iframeDoc = ref.current?.contentDocument; + if (!iframeDoc) return setTimeout(checkIframe, 50); + const node = iframeDoc.querySelector('.react-draggable'); if (!node) return setTimeout(checkIframe, 50); simulateMovementFromTo(node, 0, 0, 100, 100); const style = node.getAttribute('style'); - assert(dragged === true); + assert.equal(dragged, true); assert(style.indexOf('transform: translate(100px, 100px);') >= 0); renderRoot.parentNode.removeChild(renderRoot); @@ -471,34 +472,35 @@ describe('react-draggable', function () { }, 0); }); - it('should add and remove transparent selection class to iframe’s body when in an iframe', function (done) { - const dragElement = ( - -
- - ); - const renderRoot = document.body.appendChild(document.createElement('div')); - const frame = ReactDOM.render({ dragElement }, renderRoot); - - setTimeout(function checkIframe() { - const iframeDoc = ReactDOM.findDOMNode(frame).contentDocument; - if (!iframeDoc) return setTimeout(checkIframe, 50); - const node = iframeDoc.querySelector('.react-draggable'); - if (!node) return setTimeout(checkIframe, 50); - - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); - TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - assert(iframeDoc.body.classList.contains('react-draggable-transparent-selection')); - TestUtils.Simulate.mouseUp(node); - assert(!document.body.classList.contains('react-draggable-transparent-selection')); - assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); - - renderRoot.parentNode.removeChild(renderRoot); - done(); - }, 0); - }); + it('should add and remove transparent selection class to iframe\'s body when in an iframe', function (done) { + const dragElement = ( + +
+ + ); + const renderRoot = document.body.appendChild(document.createElement('div')); + const ref = React.createRef(); + ReactDOM.render({ dragElement }, renderRoot); + + setTimeout(function checkIframe() { + const iframeDoc = ref.current?.contentDocument; + if (!iframeDoc) return setTimeout(checkIframe, 50); + const node = iframeDoc.querySelector('.react-draggable'); + if (!node) return setTimeout(checkIframe, 50); + + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(iframeDoc.body.classList.contains('react-draggable-transparent-selection')); + TestUtils.Simulate.mouseUp(node); + assert(!document.body.classList.contains('react-draggable-transparent-selection')); + assert(!iframeDoc.body.classList.contains('react-draggable-transparent-selection')); + + renderRoot.parentNode.removeChild(renderRoot); + done(); + }, 0); + }); }); describe('interaction', function () { @@ -508,19 +510,19 @@ describe('react-draggable', function () { const node = ReactDOM.findDOMNode(drag).querySelector(selector); if (!node) throw new Error(`Selector not found: ${selector}`); TestUtils.Simulate.mouseDown(node); - assert(drag.state.dragging === shouldDrag); + assert.equal(drag.state.dragging, shouldDrag); } function resetDragging(drag) { TestUtils.Simulate.mouseUp(ReactDOM.findDOMNode(drag)); - assert(drag.state.dragging === false); + assert.equal(drag.state.dragging, false); } it('should initialize dragging onmousedown', function () { drag = TestUtils.renderIntoDocument(
); TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); - assert(drag.state.dragging === true); + assert.equal(drag.state.dragging, true); }); it('should only initialize dragging onmousedown of handle', function () { @@ -593,7 +595,7 @@ describe('react-draggable', function () { drag = TestUtils.renderIntoDocument(
); TestUtils.Simulate.mouseDown(ReactDOM.findDOMNode(drag)); - assert(drag.state.dragging === true); + assert.equal(drag.state.dragging, true); resetDragging(drag); }); @@ -605,7 +607,7 @@ describe('react-draggable', function () { // so TestUtils.Simulate will not work const e = new Event('touchstart'); ReactDOM.findDOMNode(drag).dispatchEvent(e); - assert(drag.state.dragging === true); + assert.equal(drag.state.dragging, true); }); it('should call preventDefault on touchStart event', function () { @@ -617,7 +619,7 @@ describe('react-draggable', function () { e.preventDefault = function() { pdCalled = true; }; ReactDOM.findDOMNode(drag).dispatchEvent(e); assert(pdCalled); - assert(drag.state.dragging === true); + assert.equal(drag.state.dragging, true); }); it('should not call preventDefault on touchStart event if not on handle', function () { @@ -644,7 +646,7 @@ describe('react-draggable', function () { let dragCalled = false; function onDrag(e, coreEvent) { - assert(Math.round(coreEvent.deltaY) === 500); + assert.equal(Math.round(coreEvent.deltaY), 500); dragCalled = true; } drag = TestUtils.renderIntoDocument(
); @@ -661,16 +663,16 @@ describe('react-draggable', function () { transplantNodeInto(node, fragment, (f) => f.children[0]); TestUtils.Simulate.mouseDown(node, {clientX: 0, clientY: 0}); - assert(drag.state.dragging === true); + assert.equal(drag.state.dragging, true); // Scroll the inner container & trigger a scroll fragment.scrollTop = 500; mouseMove(0, 0); TestUtils.Simulate.mouseUp(node); setTimeout(function() { - assert(drag.state.dragging === false); - assert(dragCalled === true); - assert(drag.state.y === 500); + assert.equal(drag.state.dragging, false); + assert.equal(dragCalled, true); + assert.equal(drag.state.y, 500); // Cleanup document.body.removeChild(fragment); done(); @@ -683,7 +685,7 @@ describe('react-draggable', function () { function onDrag(e, coreEvent) { dragCalled = true; // Because the offsetParent is the body, we technically haven't moved at all relative to it - assert(coreEvent.deltaY === 0); + assert.equal(coreEvent.deltaY, 0); } drag = TestUtils.renderIntoDocument(
); const node = ReactDOM.findDOMNode(drag); @@ -715,11 +717,11 @@ describe('react-draggable', function () { describe('draggable callbacks', function () { it('should call back on drag', function (done) { function onDrag(event, data) { - assert(data.x === 100); - assert(data.y === 100); - assert(data.deltaX === 100); - assert(data.deltaY === 100); - assert(data.node === ReactDOM.findDOMNode(drag)); + assert.equal(data.x, 100); + assert.equal(data.y, 100); + assert.equal(data.deltaX, 100); + assert.equal(data.deltaY, 100); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); done(); } drag = TestUtils.renderIntoDocument( @@ -736,7 +738,7 @@ describe('react-draggable', function () { function onDrag(event, data) { // Being tricky here and installing the ref on the inner child, to ensure it's working // and not just falling back on ReactDOM.findDOMNode() - assert(data.node === ReactDOM.findDOMNode(drag).firstChild); + assert.equal(data.node, ReactDOM.findDOMNode(drag).firstChild); done(); } const nodeRef = React.createRef(); @@ -759,8 +761,8 @@ describe('react-draggable', function () { }); function onDrag(event, data) { - assert(data.node === ReactDOM.findDOMNode(drag)); - assert(data.node.innerText === 'Nested component'); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); + assert.equal(data.node.innerText, 'Nested component'); done(); } const nodeRef = React.createRef(); @@ -776,10 +778,10 @@ describe('react-draggable', function () { it('should call back on drag, with values within the defined bounds', function(done){ function onDrag(event, data) { - assert(data.x === 90); - assert(data.y === 90); - assert(data.deltaX === 90); - assert(data.deltaY === 90); + assert.equal(data.x, 90); + assert.equal(data.y, 90); + assert.equal(data.deltaX, 90); + assert.equal(data.deltaY, 90); done(); } drag = TestUtils.renderIntoDocument( @@ -795,10 +797,10 @@ describe('react-draggable', function () { it('should call back with offset left/top, not client', function(done) { function onDrag(event, data) { - assert(data.x === 100); - assert(data.y === 100); - assert(data.deltaX === 100); - assert(data.deltaY === 100); + assert.equal(data.x, 100); + assert.equal(data.y, 100); + assert.equal(data.deltaX, 100); + assert.equal(data.deltaY, 100); done(); } drag = TestUtils.renderIntoDocument( @@ -813,11 +815,11 @@ describe('react-draggable', function () { it('should call back with correct position when parent element is 2x scaled', function(done) { function onDrag(event, data) { // visually it will look like 100, because parent is 2x scaled - assert(data.x === 50); - assert(data.y === 50); - assert(data.deltaX === 50); - assert(data.deltaY === 50); - assert(data.node === ReactDOM.findDOMNode(drag)); + assert.equal(data.x, 50); + assert.equal(data.y, 50); + assert.equal(data.deltaX, 50); + assert.equal(data.deltaY, 50); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); done(); } drag = TestUtils.renderIntoDocument( @@ -833,11 +835,11 @@ describe('react-draggable', function () { it('should call back with correct position when parent element is 0.5x scaled', function(done) { function onDrag(event, data) { // visually it will look like 100, because parent is 0.5x scaled - assert(data.x === 200); - assert(data.y === 200); - assert(data.deltaX === 200); - assert(data.deltaY === 200); - assert(data.node === ReactDOM.findDOMNode(drag)); + assert.equal(data.x, 200); + assert.equal(data.y, 200); + assert.equal(data.deltaX, 200); + assert.equal(data.deltaY, 200); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); done(); } drag = TestUtils.renderIntoDocument( @@ -878,7 +880,7 @@ describe('react-draggable', function () { // ok, was a setstate warning thrown? // Assert unmounted - assert(dragRef.current === null); + assert.equal(dragRef.current, null); }); }); @@ -886,11 +888,11 @@ describe('react-draggable', function () { describe('DraggableCore callbacks', function () { it('should call back with node on drag', function(done) { function onDrag(event, data) { - assert(data.x === 100); - assert(data.y === 100); - assert(data.deltaX === 100); - assert(data.deltaY === 100); - assert(data.node === ReactDOM.findDOMNode(drag)); + assert.equal(data.x, 100); + assert.equal(data.y, 100); + assert.equal(data.deltaX, 100); + assert.equal(data.deltaY, 100); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); done(); } drag = TestUtils.renderIntoDocument( @@ -906,11 +908,11 @@ describe('react-draggable', function () { it('should call back with correct position when parent element is 2x scaled', function(done) { function onDrag(event, data) { // visually it will look like 100, because parent is 2x scaled - assert(data.x === 50); - assert(data.y === 50); - assert(data.deltaX === 50); - assert(data.deltaY === 50); - assert(data.node === ReactDOM.findDOMNode(drag)); + assert.equal(data.x, 50); + assert.equal(data.y, 50); + assert.equal(data.deltaX, 50); + assert.equal(data.deltaY, 50); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); done(); } drag = TestUtils.renderIntoDocument( @@ -926,11 +928,11 @@ describe('react-draggable', function () { it('should call back with correct position when parent element is 0.5x scaled', function(done) { function onDrag(event, data) { // visually it will look like 100, because parent is 0.5x scaled - assert(data.x === 200); - assert(data.y === 200); - assert(data.deltaX === 200); - assert(data.deltaY === 200); - assert(data.node === ReactDOM.findDOMNode(drag)); + assert.equal(data.x, 200); + assert.equal(data.y, 200); + assert.equal(data.deltaX, 200); + assert.equal(data.deltaY, 200); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); done(); } drag = TestUtils.renderIntoDocument( @@ -945,19 +947,19 @@ describe('react-draggable', function () { it('should call back with snapped data output when grid prop is provided', function(done) { function onDrag(event, data) { - assert(data.x === 99); - assert(data.y === 96); - assert(data.deltaX === 99); - assert(data.deltaY === 96); - assert(data.node === ReactDOM.findDOMNode(drag)); + assert.equal(data.x, 99); + assert.equal(data.y, 96); + assert.equal(data.deltaX, 99); + assert.equal(data.deltaY, 96); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); } function onStop(event, data) { - assert(data.x === 99); - assert(data.y === 96); + assert.equal(data.x, 99); + assert.equal(data.y, 96); // Single drag-and-stop so stop {x, y} is same as drag {x, y}. - assert(data.deltaX === 0); - assert(data.deltaY === 0); - assert(data.node === ReactDOM.findDOMNode(drag)); + assert.equal(data.deltaX, 0); + assert.equal(data.deltaY, 0); + assert.equal(data.node, ReactDOM.findDOMNode(drag)); done(); } drag = TestUtils.renderIntoDocument( From 44a8c6ed103ec6c0a4dda5faf7f8ebca16f9b325 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Tue, 26 Apr 2022 14:03:38 -0400 Subject: [PATCH 399/412] release v4.4.5 --- CHANGELOG.md | 6 ++++++ package.json | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 164590a5..355246e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 4.4.5 (Apr 26, 2022) + +- Fix: `grid` prop unused in `handleDragStop` #621 +- Fix: `children` prop missing in TypeScript definition #648 +- Internal: Various devDep updates + ### 4.4.4 (Aug 27, 2021) - Fix: Ensure `documentElement.style` actually exists. Fixes crashes in some obscure environments. #574 #575 diff --git a/package.json b/package.json index d49672e6..86f69d26 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.4.4", + "version": "4.4.5", "description": "React draggable component", "main": "build/cjs/cjs.js", "unpkg": "build/web/react-draggable.min.js", @@ -96,4 +96,4 @@ "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } -} +} \ No newline at end of file From b788bad0db44825cd8cb0612173d747b303773d6 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 11 Sep 2023 17:00:22 -0400 Subject: [PATCH 400/412] chore(package): add CONTRIBUTORS --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 86f69d26..8c206677 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,9 @@ "react-component" ], "author": "Matt Zabriskie", + "contributors": [ + "Samuel Reed (http://strml.net/)" + ], "license": "MIT", "bugs": { "url": "https://github.com/react-grid-layout/react-draggable/issues" From 108e3449ba4ba3ffabc1b25c38b297a0a2443943 Mon Sep 17 00:00:00 2001 From: Nik Date: Wed, 27 Sep 2023 15:04:17 +0200 Subject: [PATCH 401/412] Fix react18 concurrent mode drag glitch due to state inconsistency (#699) * Fix react18 concurrent mode drag glitch due to state inconsistency * Fix react18 concurrent mode drag glitch, eliminate DraggableCore.state --- lib/DraggableCore.js | 63 ++++++++++++++++------------------------ lib/utils/positionFns.js | 7 ++--- 2 files changed, 28 insertions(+), 42 deletions(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 4827f36c..8e212961 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -28,13 +28,6 @@ const eventsFor = { // Default to mouse events. let dragEventFor = eventsFor.mouse; -type DraggableCoreState = { - dragging: boolean, - lastX: number, - lastY: number, - touchIdentifier: ?number -}; - export type DraggableData = { node: HTMLElement, x: number, y: number, @@ -75,7 +68,7 @@ export type DraggableCoreProps = { // work well with libraries that require more control over the element. // -export default class DraggableCore extends React.Component { +export default class DraggableCore extends React.Component { static displayName: ?string = 'DraggableCore'; @@ -227,12 +220,13 @@ export default class DraggableCore extends React.Component = (e) => { // Get the current drag point from the event. This is used as the offset. - const position = getControlPosition(e, this.state.touchIdentifier, this); + const position = getControlPosition(e, this.touchIdentifier, this); if (position == null) return; let {x, y} = position; // Snap to grid if prop has been provided if (Array.isArray(this.props.grid)) { - let deltaX = x - this.state.lastX, deltaY = y - this.state.lastY; + let deltaX = x - this.lastX, deltaY = y - this.lastY; [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY); if (!deltaX && !deltaY) return; // skip useless drag - x = this.state.lastX + deltaX, y = this.state.lastY + deltaY; + x = this.lastX + deltaX, y = this.lastY + deltaY; } const coreEvent = createCoreData(this, x, y); @@ -372,25 +363,23 @@ export default class DraggableCore extends React.Component = (e) => { - if (!this.state.dragging) return; + if (!this.dragging) return; - const position = getControlPosition(e, this.state.touchIdentifier, this); + const position = getControlPosition(e, this.touchIdentifier, this); if (position == null) return; let {x, y} = position; // Snap to grid if prop has been provided if (Array.isArray(this.props.grid)) { - let deltaX = x - this.state.lastX || 0; - let deltaY = y - this.state.lastY || 0; + let deltaX = x - this.lastX || 0; + let deltaY = y - this.lastY || 0; [deltaX, deltaY] = snapToGrid(this.props.grid, deltaX, deltaY); - x = this.state.lastX + deltaX, y = this.state.lastY + deltaY; + x = this.lastX + deltaX, y = this.lastY + deltaY; } const coreEvent = createCoreData(this, x, y); @@ -408,11 +397,9 @@ export default class DraggableCore extends React.Component's events export function createCoreData(draggable: DraggableCore, x: number, y: number): DraggableData { - const state = draggable.state; - const isStart = !isNum(state.lastX); + const isStart = !isNum(draggable.lastX); const node = findDOMNode(draggable); if (isStart) { @@ -94,8 +93,8 @@ export function createCoreData(draggable: DraggableCore, x: number, y: number): // Otherwise calculate proper values. return { node, - deltaX: x - state.lastX, deltaY: y - state.lastY, - lastX: state.lastX, lastY: state.lastY, + deltaX: x - draggable.lastX, deltaY: y - draggable.lastY, + lastX: draggable.lastX, lastY: draggable.lastY, x, y, }; } From e543a23a49d15e072220629187b1cfa665aa53d1 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 27 Sep 2023 09:28:16 -0400 Subject: [PATCH 402/412] chore(pkg): update devDependencies --- .babelrc.js | 2 +- .eslintrc | 2 +- .flowconfig | 4 +- lib/Draggable.js | 12 +- lib/DraggableCore.js | 4 +- lib/utils/domFns.js | 1 + package.json | 57 +- yarn.lock | 3989 +++++++++++++++++++++++++----------------- 8 files changed, 2395 insertions(+), 1676 deletions(-) diff --git a/.babelrc.js b/.babelrc.js index 1cfeea58..1d936d79 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -13,7 +13,7 @@ module.exports = { ], "plugins": [ "@babel/plugin-transform-flow-comments", - "@babel/plugin-proposal-class-properties", + "@babel/plugin-transform-class-properties", "transform-inline-environment-variables" ] } diff --git a/.eslintrc b/.eslintrc index 19254d13..ab322f57 100644 --- a/.eslintrc +++ b/.eslintrc @@ -27,8 +27,8 @@ // For Flow "ReactElement", "ReactClass", - "$Shape", "$Exact", + "Partial", "$Keys", "MouseTouchEvent", } diff --git a/.flowconfig b/.flowconfig index 78ac9c8e..386b3433 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,6 +1,6 @@ [ignore] /node_modules/webpack-cli.* -/node_modules/resolve.* +/node_modules/.*malformed_package_json.* [include] lib/ @@ -8,4 +8,4 @@ index.js [options] sharedmemory.heap_size=3221225472 -exact_by_default=true \ No newline at end of file +exact_by_default=true diff --git a/lib/Draggable.js b/lib/Draggable.js index cd726128..cc30e4f6 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -47,7 +47,7 @@ class Draggable extends React.Component { static displayName: ?string = 'Draggable'; - static propTypes = { + static propTypes: DraggableProps = { // Accepts all props accepts. ...DraggableCore.propTypes, @@ -179,7 +179,7 @@ class Draggable extends React.Component { // React 16.3+ // Arity (props, state) - static getDerivedStateFromProps({position}: DraggableProps, {prevPropsPosition}: DraggableState): ?$Shape { + static getDerivedStateFromProps({position}: DraggableProps, {prevPropsPosition}: DraggableState): ?Partial { // Set x/y if a new position is provided in props that is different than the previous. if ( position && @@ -262,9 +262,11 @@ class Draggable extends React.Component { const uiData = createDraggableData(this, coreData); - const newState: $Shape = { + const newState = { x: uiData.x, - y: uiData.y + y: uiData.y, + slackX: 0, + slackY: 0, }; // Keep within bounds. @@ -310,7 +312,7 @@ class Draggable extends React.Component { log('Draggable: onDragStop: %j', coreData); - const newState: $Shape = { + const newState: Partial = { dragging: false, slackX: 0, slackY: 0 diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 8e212961..6b464aa0 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -72,7 +72,7 @@ export default class DraggableCore extends React.Component { static displayName: ?string = 'DraggableCore'; - static propTypes = { + static propTypes: Object = { /** * `allowAnyClick` allows dragging using any mouse button. * By default, we only accept the left button. @@ -81,6 +81,8 @@ export default class DraggableCore extends React.Component { */ allowAnyClick: PropTypes.bool, + children: PropTypes.node.isRequired, + /** * `disabled`, if true, stops the from dragging. All handlers, * with the exception of `onMouseDown`, will not fire. diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 65fe32fe..511daa40 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -33,6 +33,7 @@ export function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode do { if (matchesSelector(node, selector)) return true; if (node === baseNode) return false; + // $FlowIgnore[incompatible-type] node = node.parentNode; } while (node); diff --git a/package.json b/package.json index 8c206677..55d83901 100644 --- a/package.json +++ b/package.json @@ -42,29 +42,30 @@ }, "homepage": "https://github.com/react-grid-layout/react-draggable", "devDependencies": { - "@babel/cli": "^7.17.6", - "@babel/core": "^7.17.9", - "@babel/eslint-parser": "^7.17.0", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-transform-flow-comments": "^7.16.7", - "@babel/preset-env": "^7.16.11", - "@babel/preset-flow": "^7.16.7", - "@babel/preset-react": "^7.16.7", - "@types/react": "^17.0.19", - "@types/react-dom": "^17.0.9", - "assert": "^2.0.0", - "babel-loader": "^8.2.5", - "babel-plugin-transform-inline-environment-variables": "^0.4.3", - "eslint": "^8.14.0", - "eslint-plugin-react": "^7.29.4", - "flow-bin": "^0.176.3", - "jasmine-core": "^4.1.0", - "karma": "^6.3.19", - "karma-chrome-launcher": "^3.1.1", + "@babel/cli": "^7.23.0", + "@babel/core": "^7.23.0", + "@babel/eslint-parser": "^7.22.15", + "@babel/plugin-transform-class-properties": "^7.18.6", + "@babel/plugin-transform-flow-comments": "^7.22.10", + "@babel/preset-env": "^7.22.20", + "@babel/preset-flow": "^7.22.15", + "@babel/preset-react": "^7.22.15", + "@types/node": "^20.7.0", + "@types/react": "^18.2.23", + "@types/react-dom": "^18.2.8", + "assert": "^2.1.0", + "babel-loader": "^9.1.3", + "babel-plugin-transform-inline-environment-variables": "^0.4.4", + "eslint": "^8.50.0", + "eslint-plugin-react": "^7.33.2", + "flow-bin": "^0.217.0", + "jasmine-core": "^5.1.1", + "karma": "^6.4.2", + "karma-chrome-launcher": "^3.2.0", "karma-cli": "2.0.0", "karma-firefox-launcher": "^2.1.2", "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^5.0.0", + "karma-jasmine": "^5.1.0", "karma-phantomjs-launcher": "^1.0.4", "karma-phantomjs-shim": "^1.5.0", "karma-webpack": "^5.0.0", @@ -72,17 +73,17 @@ "phantomjs-prebuilt": "^2.1.16", "pre-commit": "^1.2.2", "process": "^0.11.10", - "puppeteer": "^13.6.0", + "puppeteer": "^21.3.5", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-frame-component": "^5.2.1", + "react-frame-component": "^5.2.6", "react-test-renderer": "^16.13.1", - "semver": "^7.3.7", + "semver": "^7.5.4", "static-server": "^3.0.0", - "typescript": "^4.6.3", - "webpack": "^5.72.0", - "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.8.1" + "typescript": "^5.2.2", + "webpack": "^5.88.2", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" }, "resolutions": { "minimist": "^1.2.5" @@ -99,4 +100,4 @@ "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 130d2876..310f9f18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,437 +2,311 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@babel/cli@^7.17.6": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.17.6.tgz#169e5935f1795f0b62ded5a2accafeedfe5c5363" - integrity sha512-l4w608nsDNlxZhiJ5tE3DbNmr61fIKMZ6fTBo171VEFuFMIYuJ3mHRhTLEkKKyvx2Mizkkv/0a8OJOnZqkKYNA== +"@babel/cli@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.0.tgz#1d7f37c44d4117c67df46749e0c86e11a58cc64b" + integrity sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA== dependencies: - "@jridgewell/trace-mapping" "^0.3.4" + "@jridgewell/trace-mapping" "^0.3.17" commander "^4.0.1" - convert-source-map "^1.1.0" + convert-source-map "^2.0.0" fs-readdir-recursive "^1.1.0" - glob "^7.0.0" + glob "^7.2.0" make-dir "^2.1.0" slash "^2.0.0" - source-map "^0.5.0" optionalDependencies: "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== - -"@babel/core@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + +"@babel/compat-data@^7.22.20", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" + integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== + +"@babel/core@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" + integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.0" + "@babel/parser" "^7.23.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" + json5 "^2.2.3" + semver "^6.3.1" -"@babel/eslint-parser@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" - integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== +"@babel/eslint-parser@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" + integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== dependencies: - eslint-scope "^5.1.1" + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" - semver "^6.3.0" + semver "^6.3.1" -"@babel/generator@^7.16.7", "@babel/generator@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== +"@babel/generator@^7.22.10", "@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" - integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" - -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - -"@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.16.7", "@babel/parser@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" - integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" - integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - -"@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" - integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" - integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.6" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" - integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" - integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" - integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" - integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/types" "^7.22.5" -"@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/compat-data" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/types" "^7.23.0" + +"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" +"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + +"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" + +"@babel/helpers@^7.23.0": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" + integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" -"@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" - integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" +"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/plugin-proposal-private-methods@^7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" - integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" + integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.10" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" - integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" + integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" - integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -469,12 +343,33 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832" - integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ== +"@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-assertions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" + integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -483,12 +378,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" - integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -546,337 +441,472 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-async-generator-functions@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" + integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== +"@babel/plugin-transform-block-scoped-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== +"@babel/plugin-transform-block-scoping@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" + integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== +"@babel/plugin-transform-class-properties@^7.18.6", "@babel/plugin-transform-class-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" + integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== +"@babel/plugin-transform-class-static-block@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" + integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== +"@babel/plugin-transform-computed-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" - integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== +"@babel/plugin-transform-destructuring@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" + integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== +"@babel/plugin-transform-dotall-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" - integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== +"@babel/plugin-transform-duplicate-keys@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== +"@babel/plugin-transform-dynamic-import@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" + integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-flow-comments@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.16.7.tgz#be372c158b4d73ac98739cd993a496695b20b2b7" - integrity sha512-UwUPYGlsKRVrKlG2cqwDq3OVTRBZe8uB5cn9yGUy3ZLG+AZko5XtLitlivjylcw920+NMGqls+gEKLwjegMdcg== +"@babel/plugin-transform-exponentiation-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" + integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== dependencies: - "@babel/generator" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-flow" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-flow-strip-types@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8" - integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== +"@babel/plugin-transform-export-namespace-from@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" + integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-flow" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== +"@babel/plugin-transform-flow-comments@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.22.10.tgz#59972dc2bba44a311c13c4dafcfff5856803d801" + integrity sha512-NeboB434W7jT9ttomDpFS5u5JxeJmAlSh7YZpIxIsYNvNTr54vX2T12z7ohdKgzm6N6nfRhG9u9ktat7NL53TA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/generator" "^7.22.10" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== +"@babel/plugin-transform-flow-strip-types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" + integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== +"@babel/plugin-transform-for-of@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" + integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== +"@babel/plugin-transform-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" - integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== +"@babel/plugin-transform-json-strings@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" + integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" - integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== +"@babel/plugin-transform-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== dependencies: - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" - integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== +"@babel/plugin-transform-logical-assignment-operators@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" + integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" - integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== +"@babel/plugin-transform-member-expression-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== +"@babel/plugin-transform-modules-amd@^7.22.5": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" + integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" - integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== +"@babel/plugin-transform-modules-commonjs@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" + integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== +"@babel/plugin-transform-modules-systemjs@^7.22.11": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" + integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== +"@babel/plugin-transform-modules-umd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-display-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" - integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== +"@babel/plugin-transform-new-target@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" + integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx-development@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" - integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" + integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== dependencies: - "@babel/plugin-transform-react-jsx" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" + integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-react-jsx@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" - integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== +"@babel/plugin-transform-object-rest-spread@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" + integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-jsx" "^7.16.7" - "@babel/types" "^7.17.0" + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.15" -"@babel/plugin-transform-react-pure-annotations@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67" - integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA== +"@babel/plugin-transform-object-super@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" - integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== - dependencies: - regenerator-transform "^0.15.0" - -"@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" - integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" - integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/preset-env@^7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== - dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.11" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" +"@babel/plugin-transform-optional-catch-binding@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" + integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" + integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" + integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" + integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" + integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-display-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" + integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.22.5" + +"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" + integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.15" + +"@babel/plugin-transform-react-pure-annotations@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" + integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-shorthand-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-escapes@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" + integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" + integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.20.tgz#de9e9b57e1127ce0a2f580831717f7fb677ceedb" + integrity sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg== + dependencies: + "@babel/compat-data" "^7.22.20" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -886,77 +916,97 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" - "@babel/plugin-transform-new-target" "^7.16.7" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" - "@babel/plugin-transform-reserved-words" "^7.16.7" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" - semver "^6.3.0" - -"@babel/preset-flow@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.7.tgz#7fd831323ab25eeba6e4b77a589f680e30581cbd" - integrity sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-flow-strip-types" "^7.16.7" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.15" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.15" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.11" + "@babel/plugin-transform-classes" "^7.22.15" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.15" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.11" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" + "@babel/plugin-transform-for-of" "^7.22.15" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.11" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.15" + "@babel/plugin-transform-modules-systemjs" "^7.22.11" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" + "@babel/plugin-transform-numeric-separator" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.15" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.11" + "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.19" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-flow@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.15.tgz#30318deb9b3ebd9f5738e96da03a531e0cd3165d" + integrity sha512-dB5aIMqpkgbTfN5vDdTRPzjqtWiZcRESNR88QYnoPR+bmdYoluOzMX9tQerTv0XzSgZYctPfO1oc0N5zdog1ew== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-flow-strip-types" "^7.22.5" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" - integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== +"@babel/preset-react@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.15.tgz#9a776892b648e13cc8ca2edf5ed1264eea6b6afc" + integrity sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-react-display-name" "^7.16.7" - "@babel/plugin-transform-react-jsx" "^7.16.7" - "@babel/plugin-transform-react-jsx-development" "^7.16.7" - "@babel/plugin-transform-react-pure-annotations" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-react-display-name" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.22.15" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.22.5" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.8.4": version "7.17.9" @@ -965,37 +1015,38 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" +"@babel/template@^7.22.15", "@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" + integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== +"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.4": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@colors/colors@1.5.0": @@ -1008,52 +1059,96 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@eslint/eslintrc@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.2.tgz#4989b9e8c0216747ee7cca314ae73791bb281aae" - integrity sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg== +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.0.tgz#7ccb5f58703fa61ffdcbf39e2c604a109e781162" + integrity sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ== + +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.1" - globals "^13.9.0" + espree "^9.6.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" - minimatch "^3.0.4" + minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.9.2": - version "0.9.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" - integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== +"@eslint/js@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" + integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== + +"@humanwhocodes/config-array@^0.11.11": + version "0.11.11" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz#4ac237f4dabc8dd93330386907b97591801f7352" - integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@leichtgewicht/ip-codec@^2.0.1": version "2.0.3" @@ -1065,11 +1160,57 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@puppeteer/browsers@1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-1.7.1.tgz#04f1e3aec4b87f50a7acc8f64be2149bda014f0a" + integrity sha512-nIb8SOBgDEMFY2iS2MdnUZOg2ikcYchRrBoF+wtdjieRFKR2uGRipHY/oFLo+2N6anDualyClPzGywTHRGrLfw== + dependencies: + debug "4.3.4" + extract-zip "2.0.1" + progress "2.0.3" + proxy-agent "6.3.1" + tar-fs "3.0.4" + unbzip2-stream "1.4.3" + yargs "17.7.1" + "@socket.io/base64-arraybuffer@~1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#568d9beae00b0d835f4f8c53fd55714986492e61" integrity sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ== +"@tootallnate/quickjs-emscripten@^0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" + integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1131,10 +1272,10 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" + integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": version "4.17.28" @@ -1155,6 +1296,11 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/http-errors@*": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.2.tgz#a86e00bbde8950364f8e7846687259ffcd96e8c2" + integrity sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg== + "@types/http-proxy@^1.17.8": version "1.17.8" resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55" @@ -1162,20 +1308,20 @@ dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== +"@types/mime@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.2.tgz#c1ae807f13d308ee7511a5b81c74f327028e66e8" + integrity sha512-Wj+fqpTLtTbG7c0tH47dkahefpLKEbB+xAZuLq7b4/IDHPl/n6VoXcyUQ2bypFlbSwvCr0y+bD4euTTqTJsPxQ== -"@types/node@*", "@types/node@>=10.0.0": - version "17.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.27.tgz#f4df3981ae8268c066e8f49995639f855469081e" - integrity sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg== +"@types/node@*", "@types/node@>=10.0.0", "@types/node@^20.7.0": + version "20.7.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.7.0.tgz#c03de4572f114a940bc2ca909a33ddb2b925e470" + integrity sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg== "@types/prop-types@*": version "15.7.5" @@ -1192,17 +1338,17 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^17.0.9": - version "17.0.16" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.16.tgz#7caba93cf2806c51e64d620d8dff4bae57e06cc4" - integrity sha512-DWcXf8EbMrO/gWnQU7Z88Ws/p16qxGpPyjTKTpmBSFKeE+HveVubqGO1CVK7FrwlWD5MuOcvh8gtd0/XO38NdQ== +"@types/react-dom@^18.2.8": + version "18.2.8" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.8.tgz#338f1b0a646c9f10e0a97208c1d26b9f473dffd6" + integrity sha512-bAIvO5lN/U8sPGvs1Xm61rlRHHaq5rp5N3kp9C+NJ/Q41P8iqjkXSu0+/qu8POsjH9pNWb0OYabFez7taP7omw== dependencies: - "@types/react" "^17" + "@types/react" "*" -"@types/react@^17", "@types/react@^17.0.19": - version "17.0.44" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" - integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== +"@types/react@*", "@types/react@^18.2.23": + version "18.2.23" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.23.tgz#60ad6cf4895e93bed858db0e03bcc4ff97d0410e" + integrity sha512-qHLW6n1q2+7KyBEYnrZpcsAmU/iiCh9WGCKgXvMxx89+TYdJWRjZohVIo9XTcoLhfX3+/hP0Pbulu3bCZQ9PSA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -1225,12 +1371,13 @@ dependencies: "@types/express" "*" -"@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.3.tgz#2cfacfd1fd4520bbc3e292cca432d5e8e2e3ee61" + integrity sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg== dependencies: - "@types/mime" "^1" + "@types/http-errors" "*" + "@types/mime" "*" "@types/node" "*" "@types/sockjs@^0.3.33": @@ -1240,10 +1387,10 @@ dependencies: "@types/node" "*" -"@types/ws@^8.5.1": - version "8.5.3" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" - integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== +"@types/ws@^8.5.5": + version "8.5.6" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.6.tgz#e9ad51f0ab79b9110c50916c9fcbddc36d373065" + integrity sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg== dependencies: "@types/node" "*" @@ -1254,143 +1401,141 @@ dependencies: "@types/node" "*" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356" - integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== +"@webpack-cli/configtest@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== -"@webpack-cli/info@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea" - integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== - dependencies: - envinfo "^7.7.3" +"@webpack-cli/info@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== -"@webpack-cli/serve@^1.6.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe" - integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== +"@webpack-cli/serve@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -1410,27 +1555,27 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.3.1: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== dependencies: - debug "4" + debug "^4.3.4" ajv-formats@^2.1.1: version "2.1.1" @@ -1451,7 +1596,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1518,6 +1663,14 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1528,27 +1681,51 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== +array-includes@^3.1.4, array-includes@^3.1.6: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" -array.prototype.flatmap@^1.2.5: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== +array.prototype.flatmap@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" +array.prototype.tosorted@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + asn1@~0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" @@ -1561,22 +1738,30 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== +assert@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" -async@^2.6.2: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== +ast-types@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== dependencies: - lodash "^4.17.14" + tslib "^2.0.1" + +asynciterator.prototype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== + dependencies: + has-symbols "^1.0.3" asynckit@^0.4.0: version "0.4.0" @@ -1598,51 +1783,47 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -babel-loader@^8.2.5: - version "8.2.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" - integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" +b4a@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" + integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== +babel-loader@^9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" + integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== dependencies: - object.assign "^4.1.0" + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== +babel-plugin-polyfill-corejs2@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" - semver "^6.1.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== +babel-plugin-polyfill-corejs3@^0.8.3: + version "0.8.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz#1fac2b1dcef6274e72b3c72977ed8325cb330591" + integrity sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" + "@babel/helper-define-polyfill-provider" "^0.4.2" + core-js-compat "^3.32.2" -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== +babel-plugin-polyfill-regenerator@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" -babel-plugin-transform-inline-environment-variables@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.3.tgz#a3b09883353be8b5e2336e3ff1ef8a5d93f9c489" - integrity sha1-o7CYgzU76LXiM24/8e+KXZP5xIk= +babel-plugin-transform-inline-environment-variables@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.4.tgz#974245008b3cbbd646bd81707af147aea3acca43" + integrity sha512-bJILBtn5a11SmtR2j/3mBOjX4K3weC6cq+NNZ7hG22wCAqpc3qtj/iN7dSe9HDiS46lgp1nHsQgeYrea/RUe+g== balanced-match@^1.0.0: version "1.0.2" @@ -1659,6 +1840,11 @@ base64id@2.0.0, base64id@~2.0.0: resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== +basic-ftp@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228" + integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== + batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -1671,25 +1857,11 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - body-parser@1.20.0, body-parser@^1.19.0: version "1.20.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" @@ -1733,16 +1905,15 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.20.2: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== +browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9: + version "4.22.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.0.tgz#6adc8116589ccea8a99d0df79c5de2436199abdb" + integrity sha512-v+Jcv64L2LbfTC6OnRcaxtqJNJuQAVhZKSJfR/6hn7lhnChUXl4amwVviqN1k411BB+3rRoKMitELRn1CojeRA== dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" + caniuse-lite "^1.0.30001539" + electron-to-chromium "^1.4.530" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" buffer-crc32@~0.2.3: version "0.2.13" @@ -1754,7 +1925,7 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.2.1, buffer@^5.5.0: +buffer@^5.2.1: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -1785,10 +1956,10 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001332: - version "1.0.30001332" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" - integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== +caniuse-lite@^1.0.30001539: + version "1.0.30001540" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001540.tgz#a316ca4f2ae673ab02ff0ec533334016d56ff658" + integrity sha512-9JL38jscuTJBTcuETxm8QLsFr/F6v0CYYTEU6r5+qSM98P2Q0Hmu0eG1dTG5GBUmywU3UlcVOUSIJYY47rdFSw== caseless@~0.12.0: version "0.12.0" @@ -1806,7 +1977,7 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^2.0.0: +chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1838,16 +2009,19 @@ chokidar@^3.4.0, chokidar@^3.5.1, chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== +chromium-bidi@0.4.28: + version "0.4.28" + resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.4.28.tgz#05befef4f3f19003198237245780d1c60e6f4dbc" + integrity sha512-2HZ74QlAApJrEwcGlU/sUu0s4VS+FI3CJ09Toc9aE9VemMyhHZXeaROQgJKNRaYMUTUx6qIv1cLBs3F+vfgjSw== + dependencies: + mitt "3.0.1" + urlpattern-polyfill "9.0.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1857,6 +2031,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -1907,6 +2090,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^2.20.0, commander@^2.3.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1917,15 +2105,10 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== component-emitter@~1.3.0: version "1.3.0" @@ -1967,10 +2150,10 @@ concat-stream@^1.4.7, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== connect@^3.7.0: version "3.7.0" @@ -1994,12 +2177,10 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.1.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cookie-signature@1.0.6: version "1.0.6" @@ -2016,13 +2197,12 @@ cookie@~0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.22.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.2.tgz#eec621eb276518efcf718d0a6d9d042c3d0cad48" - integrity sha512-Fns9lU06ZJ07pdfmPMu7OnkIKGPKDzXKIiuGlSvHHapwqMUF2QnnsWwtueFZtSyZEilP0o6iUeHQwpn7LxtLUw== +core-js-compat@^3.31.0, core-js-compat@^3.32.2: + version "3.32.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c" + integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ== dependencies: - browserslist "^4.20.2" - semver "7.0.0" + browserslist "^4.21.10" core-util-is@1.0.2: version "1.0.2" @@ -2042,12 +2222,22 @@ cors@~2.8.5: object-assign "^4" vary "^1" -cross-fetch@3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== +cosmiconfig@8.3.6: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cross-fetch@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== dependencies: - node-fetch "2.6.7" + node-fetch "^2.6.12" cross-spawn@^5.0.1: version "5.1.0" @@ -2084,6 +2274,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz#db89a9e279c2ffe74f50637a59a32fb23b3e4d7c" + integrity sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg== + date-format@^4.0.9: version "4.0.9" resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.9.tgz#4788015ac56dedebe83b03bc361f00c1ddcf1923" @@ -2103,13 +2298,6 @@ debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, de dependencies: ms "2.1.2" -debug@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -2122,19 +2310,38 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" +define-data-property@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" + integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: + define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" +degenerator@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" + integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== + dependencies: + ast-types "^0.13.4" + escodegen "^2.1.0" + esprima "^4.0.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2160,10 +2367,10 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -devtools-protocol@0.0.981744: - version "0.0.981744" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.981744.tgz#9960da0370284577d46c28979a0b32651022bacf" - integrity sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg== +devtools-protocol@0.0.1179426: + version "0.0.1179426" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1179426.tgz#c4c3ee671efae868395569123002facbbbffa267" + integrity sha512-KKC7IGwdOr7u9kTGgjUvGTov/z1s2H7oHi3zKCdR9eSDyCPia5CBi4aRhtp7d8uR7l0GS5UTDw3TjKGu5CqINg== di@^0.0.1: version "0.0.1" @@ -2219,27 +2426,22 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.4.118: - version "1.4.122" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz#56e518e8c4433876b01d4460eac0f653841ed510" - integrity sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw== +electron-to-chromium@^1.4.530: + version "1.4.531" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.531.tgz#22966d894c4680726c17cf2908ee82ff5d26ac25" + integrity sha512-H6gi5E41Rn3/mhKlPaT1aIMg/71hTAqn0gYEllSuw9igNWtvQwu185jiCZoZD29n7Zukgh7GVZ3zGf0XvkhqjQ== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -2269,10 +2471,10 @@ engine.io@~6.2.0: engine.io-parser "~5.0.3" ws "~8.2.3" -enhanced-resolve@^5.9.2: - version "5.9.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" - integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -2287,36 +2489,91 @@ envinfo@^7.7.3: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -es-abstract@^1.18.5, es-abstract@^1.19.1, es-abstract@^1.19.2: - version "1.19.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" - integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.1" get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" + is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.3" object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.11" + +es-iterator-helpers@^1.0.12: + version "1.0.15" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== + dependencies: + asynciterator.prototype "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.1" + es-abstract "^1.22.1" + es-set-tostringtag "^2.0.1" + function-bind "^1.1.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + iterator.prototype "^1.1.2" + safe-array-concat "^1.0.1" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" + integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" es-shim-unscopables@^1.0.0: version "1.0.0" @@ -2334,11 +2591,6 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= - es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -2364,27 +2616,40 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-plugin-react@^7.29.4: - version "7.29.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" - integrity sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ== +escodegen@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: - array-includes "^3.1.4" - array.prototype.flatmap "^1.2.5" + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +eslint-plugin-react@^7.33.2: + version "7.33.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== + dependencies: + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" + es-iterator-helpers "^1.0.12" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.0" - object.values "^1.1.5" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.6" + resolve "^2.0.0-next.4" + semver "^6.3.1" + string.prototype.matchall "^4.0.8" -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -2392,85 +2657,85 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: +eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^8.14.0: - version "8.14.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.14.0.tgz#62741f159d9eb4a79695b28ec4989fcdec623239" - integrity sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw== - dependencies: - "@eslint/eslintrc" "^1.2.2" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.50.0: + version "8.50.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" + integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.50.0" + "@humanwhocodes/config-array" "^0.11.11" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + is-path-inside "^3.0.3" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" - integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^8.7.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.3.0" + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -2604,6 +2869,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-fifo@^1.1.0, fast-fifo@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -2619,6 +2889,13 @@ fastest-levenshtein@^1.0.12: resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + faye-websocket@^0.11.3: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" @@ -2678,14 +2955,13 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" find-up@^4.0.0: version "4.1.0" @@ -2695,6 +2971,22 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -2708,20 +3000,22 @@ flatted@^3.1.0, flatted@^3.2.5: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== -flow-bin@^0.176.3: - version "0.176.3" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.176.3.tgz#d32de04e044ab474afe543b9fd245608bb6a6ac8" - integrity sha512-lbNqgjr2GlGLAEVp5+dhG4LdnFE7ekbvVNifAdlvTx58/nE8GrCOMiUwEQy4dLnfL2NIRMk2dbEVTrugeQJ3mA== +flow-bin@^0.217.0: + version "0.217.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.0.tgz#c255b4d8d815520d396416c2f712ab849d61f467" + integrity sha512-AbbDE6QUpR+jpY9ejNROAk0P5D/2PxJzjU4D5vfmMwtS+QjjPjzfZGuatEJIn2k4PTZ2agbncaCtyHGO0AvG7A== follow-redirects@^1.0.0: version "1.14.9" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" forever-agent@~0.6.1: version "0.6.1" @@ -2747,11 +3041,6 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - fs-extra@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" @@ -2770,6 +3059,15 @@ fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-monkey@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" @@ -2795,12 +3093,17 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" -functions-have-names@^1.2.2: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -2815,14 +3118,15 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-proto "^1.0.1" + has-symbols "^1.0.3" get-stream@^5.1.0: version "5.2.0" @@ -2844,6 +3148,16 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-uri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.1.tgz#cff2ba8d456c3513a04b70c45de4dbcca5b1527c" + integrity sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q== + dependencies: + basic-ftp "^5.0.2" + data-uri-to-buffer "^5.0.1" + debug "^4.3.4" + fs-extra "^8.1.0" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -2851,7 +3165,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^6.0.1: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -2870,15 +3184,15 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.0, glob@^7.1.3, glob@^7.1.7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.1.3, glob@^7.1.7, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -2887,18 +3201,37 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.13.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" - integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== +globals@^13.19.0: + version "13.22.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.22.0.tgz#0c9fcb9c48a2494fbb5edbfee644285543eba9d8" + integrity sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw== dependencies: type-fest "^0.20.2" +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -2946,7 +3279,12 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -3019,6 +3357,14 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== +http-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + http-proxy-middleware@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" @@ -3048,12 +3394,12 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-proxy-agent@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== +https-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== dependencies: - agent-base "6" + agent-base "^7.0.2" debug "4" human-signals@^2.1.0: @@ -3078,7 +3424,7 @@ ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -3107,7 +3453,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3117,19 +3463,29 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== +internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +ip@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== ipaddr.js@1.9.1: version "1.9.1" @@ -3149,6 +3505,27 @@ is-arguments@^1.0.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -3171,19 +3548,19 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.2.0, is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== +is-core-module@^2.13.0, is-core-module@^2.9.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -3200,12 +3577,19 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-function@^1.0.7: +is-generator-function@^1.0.10, is-generator-function@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== @@ -3219,7 +3603,12 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-nan@^1.2.1: +is-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-nan@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== @@ -3244,6 +3633,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" @@ -3264,6 +3658,11 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-set@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -3295,22 +3694,23 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.3, is-typed-array@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" - integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.18.5" - foreach "^2.0.5" - has-tostringtag "^1.0.0" + which-typed-array "^1.1.11" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -3318,6 +3718,14 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -3325,6 +3733,11 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3350,11 +3763,27 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + jasmine-core@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-4.1.0.tgz#2377349b0e8bfd3fbdb36c9e4f09e3b1a17cf5c2" integrity sha512-8E8BiffCL8sBwK1zU9cbavLe8xpJAgOduSJ6N8PJVv8VosQ/nxVTuXj2kUeHxTlZBVvh24G19ga7xdiaxlceKg== +jasmine-core@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-5.1.1.tgz#38b6ccfbe60aa2a863cf441751d9639b5a571edc" + integrity sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg== + jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -3391,10 +3820,10 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" @@ -3421,10 +3850,10 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.2, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^2.1.0: version "2.4.0" @@ -3433,6 +3862,13 @@ jsonfile@^2.1.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -3460,10 +3896,10 @@ jsprim@^1.2.2: array-includes "^3.1.4" object.assign "^4.1.2" -karma-chrome-launcher@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz#baca9cc071b1562a1db241827257bfe5cab597ea" - integrity sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ== +karma-chrome-launcher@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" + integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== dependencies: which "^1.2.1" @@ -3489,10 +3925,10 @@ karma-ie-launcher@^1.0.0: dependencies: lodash "^4.6.1" -karma-jasmine@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-5.0.0.tgz#e270c86214b5390df77ebe1b6eaab79664d87d9f" - integrity sha512-dsFkCoTwyoNyQnMgegS72wIA/2xPDJG5yzTry0448U6lAY7P60Wgg4UuLlbdLv8YHbimgNpDXjjmfPdc99EDWQ== +karma-jasmine@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-5.1.0.tgz#3af4558a6502fa16856a0f346ec2193d4b884b2f" + integrity sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ== dependencies: jasmine-core "^4.1.0" @@ -3518,10 +3954,10 @@ karma-webpack@^5.0.0: minimatch "^3.0.4" webpack-merge "^4.1.5" -karma@^6.3.19: - version "6.3.19" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.3.19.tgz#e50759667b0b9c6ad758655db0547d3ab4d2abf5" - integrity sha512-NDhWckzES/Y9xMiddyU1RzaKL76/scCsu8Mp0vR0Z3lQRvC3p72+Ab4ppoxs36S9tyPNX5V48yvaV++RNEBPZw== +karma@^6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.2.tgz#a983f874cee6f35990c4b2dcc3d274653714de8e" + integrity sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -3565,6 +4001,14 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +launch-editor@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" + integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.7.3" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -3573,20 +4017,16 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3594,6 +4034,20 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -3604,12 +4058,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash@^4.0.1, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.6.1: +lodash@^4.0.1, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.6.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3640,6 +4089,13 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3647,6 +4103,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.14.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -3655,13 +4116,6 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -3729,7 +4183,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.4, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -3741,6 +4195,11 @@ minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +mitt@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== + mkdirp-classic@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" @@ -3763,7 +4222,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -3791,10 +4250,15 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -3803,10 +4267,10 @@ node-forge@^1: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-releases@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -3830,12 +4294,12 @@ object-assign@^4, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.12.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.0.1: +object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -3848,50 +4312,50 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.2, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== +object.entries@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== +object.fromentries@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.hasown@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" - integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== +object.hasown@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== dependencies: - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== +object.values@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" @@ -3940,17 +4404,17 @@ open@^8.0.9: is-docker "^2.1.1" is-wsl "^2.2.0" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" os-shim@^0.1.2: version "0.1.3" @@ -3964,6 +4428,20 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -3971,6 +4449,20 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + p-retry@^4.5.0: version "4.6.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" @@ -3984,6 +4476,29 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pac-proxy-agent@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz#6b9ddc002ec3ff0ba5fdf4a8a21d363bcc612d75" + integrity sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A== + dependencies: + "@tootallnate/quickjs-emscripten" "^0.23.0" + agent-base "^7.0.2" + debug "^4.3.4" + get-uri "^6.0.1" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.2" + pac-resolver "^7.0.0" + socks-proxy-agent "^8.0.2" + +pac-resolver@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.0.tgz#79376f1ca26baf245b96b34c339d79bff25e900c" + integrity sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg== + dependencies: + degenerator "^5.0.0" + ip "^1.1.8" + netmask "^2.0.2" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -3991,6 +4506,16 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -4001,6 +4526,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -4011,7 +4541,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -4021,6 +4551,11 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -4073,21 +4608,19 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pkg-dir@4.2.0, pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -portfinder@^1.0.28: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" + find-up "^6.3.0" pre-commit@^1.2.2: version "1.2.2" @@ -4140,7 +4673,21 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-from-env@1.1.0: +proxy-agent@6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.3.1.tgz#40e7b230552cf44fd23ffaf7c59024b692612687" + integrity sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.2" + lru-cache "^7.14.1" + pac-proxy-agent "^7.0.1" + proxy-from-env "^1.1.0" + socks-proxy-agent "^8.0.2" + +proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== @@ -4168,23 +4715,26 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^13.6.0: - version "13.6.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-13.6.0.tgz#3583fc60c1af59af838d65a09680f2d07f3608f9" - integrity sha512-EJXhTyY5bXNPLFXPGcY9JaF6EKJIX8ll8cGG3WUK+553Jx96oDf1cB+lkFOro9p0X16tY+9xx7zYWl+vnWgW2g== +puppeteer-core@21.3.5: + version "21.3.5" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-21.3.5.tgz#f9f592590ce2c3633725ff4a6f924bc66c420640" + integrity sha512-C/yVgvob/HbUVTedhnURDruFkJYHEqJWlb6YltJGj/T7yzWdG4ouQ0JER8aX5g2RS4DMQ0xMNuhUVYMqC2QfnQ== dependencies: - cross-fetch "3.1.5" + "@puppeteer/browsers" "1.7.1" + chromium-bidi "0.4.28" + cross-fetch "4.0.0" debug "4.3.4" - devtools-protocol "0.0.981744" - extract-zip "2.0.1" - https-proxy-agent "5.0.0" - pkg-dir "4.2.0" - progress "2.0.3" - proxy-from-env "1.1.0" - rimraf "3.0.2" - tar-fs "2.1.1" - unbzip2-stream "1.4.3" - ws "8.5.0" + devtools-protocol "0.0.1179426" + ws "8.14.2" + +puppeteer@^21.3.5: + version "21.3.5" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-21.3.5.tgz#70e6900941104718ff765484d030bb472c4572a3" + integrity sha512-Lff7dgN7D1AHnPBgceZiZpcXVpKOcnSCtBy+TZlwqYBumGapOky3/rUPScd6I6poh5XpPNzya6gbipBasAs7xA== + dependencies: + "@puppeteer/browsers" "1.7.1" + cosmiconfig "8.3.6" + puppeteer-core "21.3.5" qjobs@^1.2.0: version "1.2.0" @@ -4203,6 +4753,16 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -4235,10 +4795,10 @@ react-dom@^16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-frame-component@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-5.2.1.tgz#6bd5ec73ef7d720f57ee8f259546ed926a941267" - integrity sha512-nrSh1OZuHlX69eWqJPiUkPT9S6/wxc4PpJV+vOQ4pHQQ8XmIsIT+utWT+nX32ZfANHZuKONA7JsWMUGT36CqaQ== +react-frame-component@^5.2.6: + version "5.2.6" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-5.2.6.tgz#0d9991d251ff1f7177479d8f370deea06b824b79" + integrity sha512-CwkEM5VSt6nFwZ1Op8hi3JB5rPseZlmnp5CGiismVTauE6S4Jsc4TNMlT0O7Cts4WgIC3ZBAQ2p1Mm9XgLbj+w== react-is@^16.13.1, react-is@^16.8.6: version "16.13.1" @@ -4277,7 +4837,7 @@ readable-stream@^2.0.1, readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.0.6: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -4293,17 +4853,29 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: - resolve "^1.9.0" + resolve "^1.20.0" -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +reflect.getprototypeof@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" + integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" @@ -4317,48 +4889,38 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + define-properties "^1.2.0" + set-function-name "^2.0.0" -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: + "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + unicode-match-property-value-ecmascript "^2.1.0" -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" @@ -4427,40 +4989,63 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.14.2, resolve@^1.3.3, resolve@^1.9.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.3: + version "1.22.6" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" + integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3: - version "2.0.0-next.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rfdc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -4471,6 +5056,15 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -4484,19 +5078,10 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== +schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" @@ -4517,32 +5102,27 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" - integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== +selfsigned@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== dependencies: node-forge "^1" -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== +semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" @@ -4565,10 +5145,10 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== dependencies: randombytes "^2.1.0" @@ -4595,6 +5175,15 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-name@^2.0.0, set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -4636,6 +5225,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -4655,6 +5249,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + socket.io-adapter@~2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" @@ -4681,7 +5280,7 @@ socket.io@^4.4.1: socket.io-adapter "~2.4.0" socket.io-parser "~4.0.4" -sockjs@^0.3.21: +sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== @@ -4690,6 +5289,23 @@ sockjs@^0.3.21: uuid "^8.3.2" websocket-driver "^0.7.4" +socks-proxy-agent@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" + integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + socks "^2.7.1" + +socks@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -4698,23 +5314,11 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@~0.8.0-beta.0: - version "0.8.0-beta.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" - integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== - dependencies: - whatwg-url "^7.0.0" - spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" @@ -4790,7 +5394,15 @@ streamroller@^3.0.8: debug "^4.3.4" fs-extra "^10.1.0" -string-width@^4.1.0, string-width@^4.2.0: +streamx@^2.15.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.1.tgz#396ad286d8bc3eeef8f5cea3f029e81237c024c6" + integrity sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4799,35 +5411,47 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.matchall@^4.0.6: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== +string.prototype.matchall@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" side-channel "^1.0.4" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" @@ -4862,7 +5486,7 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -4903,46 +5527,43 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== +tar-fs@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" + integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== dependencies: - chownr "^1.1.1" mkdirp-classic "^0.5.2" pump "^3.0.0" - tar-stream "^2.1.4" + tar-stream "^3.1.5" -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== +tar-stream@^3.1.5: + version "3.1.6" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" + integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" + b4a "^1.6.4" + fast-fifo "^1.2.0" + streamx "^2.15.0" -terser-webpack-plugin@^5.1.3: - version "5.3.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" - integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== +terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: + "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - terser "^5.7.2" + serialize-javascript "^6.0.1" + terser "^5.16.8" -terser@^5.7.2: - version "5.13.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.0.tgz#d43fd71861df1b4df743980caa257c6fa03acc44" - integrity sha512-sgQ99P+fRBM1jAYzN9RTnD/xEWx/7LZgYTCRgmYriSq1wxxqiQPJgXkkLBBuwySDWJ2PP0PnVQyuf4xLUuH4Ng== +terser@^5.16.8: + version "5.20.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.20.0.tgz#ea42aea62578703e33def47d5c5b93c49772423e" + integrity sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ== dependencies: - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" - source-map "~0.8.0-beta.0" source-map-support "~0.5.20" text-table@^0.2.0: @@ -4997,18 +5618,16 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +tslib@^2.0.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -5041,22 +5660,61 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" - integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== +typescript@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== ua-parser-js@^0.7.30: version "0.7.31" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== -unbox-primitive@^1.0.1: +unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== @@ -5087,16 +5745,21 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -5107,6 +5770,14 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5114,21 +5785,25 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +urlpattern-polyfill@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz#bc7e386bb12fd7898b58d1509df21d3c29ab3460" + integrity sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util@^0.12.0: - version "0.12.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" - integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== +util@^0.12.5: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" is-arguments "^1.0.4" is-generator-function "^1.0.7" is-typed-array "^1.1.3" - safe-buffer "^5.1.2" which-typed-array "^1.1.2" utils-merge@1.0.1: @@ -5146,11 +5821,6 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -5170,10 +5840,10 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" - integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -5190,27 +5860,23 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webpack-cli@^4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" - integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== +webpack-cli@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.1.1" - "@webpack-cli/info" "^1.4.1" - "@webpack-cli/serve" "^1.6.1" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" colorette "^2.0.14" - commander "^7.0.0" - execa "^5.0.0" + commander "^10.0.1" + cross-spawn "^7.0.3" + envinfo "^7.7.3" fastest-levenshtein "^1.0.12" import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" + interpret "^3.1.1" + rechoir "^0.8.0" webpack-merge "^5.7.3" webpack-dev-middleware@^5.3.1: @@ -5224,40 +5890,41 @@ webpack-dev-middleware@^5.3.1: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.8.1: - version "4.8.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz#58f9d797710d6e25fa17d6afab8708f958c11a29" - integrity sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg== +webpack-dev-server@^4.15.1: + version "4.15.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7" + integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" "@types/express" "^4.17.13" "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" + "@types/ws" "^8.5.5" ansi-html-community "^0.0.8" bonjour-service "^1.0.11" chokidar "^3.5.3" colorette "^2.0.10" compression "^1.7.4" - connect-history-api-fallback "^1.6.0" + connect-history-api-fallback "^2.0.0" default-gateway "^6.0.3" express "^4.17.3" graceful-fs "^4.2.6" html-entities "^2.3.2" http-proxy-middleware "^2.0.3" ipaddr.js "^2.0.1" + launch-editor "^2.6.0" open "^8.0.9" p-retry "^4.5.0" - portfinder "^1.0.28" rimraf "^3.0.2" schema-utils "^4.0.0" - selfsigned "^2.0.1" + selfsigned "^2.1.1" serve-index "^1.9.1" - sockjs "^0.3.21" + sockjs "^0.3.24" spdy "^4.0.2" webpack-dev-middleware "^5.3.1" - ws "^8.4.2" + ws "^8.13.0" webpack-merge@^4.1.5: version "4.2.2" @@ -5279,34 +5946,34 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.72.0: - version "5.72.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.0.tgz#f8bc40d9c6bb489a4b7a8a685101d6022b8b6e28" - integrity sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w== +webpack@^5.88.2: + version "5.88.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" + integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.4.1" - acorn-import-assertions "^1.7.6" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.9.2" - es-module-lexer "^0.9.0" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.9" - json-parse-better-errors "^1.0.2" + json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.0" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.3.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: @@ -5331,15 +5998,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -5351,17 +6009,44 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" - integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.11, which-typed-array@^1.1.2, which-typed-array@^1.1.9: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== dependencies: available-typed-arrays "^1.0.5" call-bind "^1.0.2" - es-abstract "^1.18.5" - foreach "^2.0.5" + for-each "^0.3.3" + gopd "^1.0.1" has-tostringtag "^1.0.0" - is-typed-array "^1.1.7" which@1.2.x: version "1.2.14" @@ -5389,11 +6074,6 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -5408,10 +6088,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@8.5.0, ws@^8.4.2: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" - integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== +ws@8.14.2, ws@^8.13.0: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== ws@~8.2.3: version "8.2.3" @@ -5428,6 +6108,11 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -5438,6 +6123,24 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@17.7.1: + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yargs@^16.1.1: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" @@ -5458,3 +6161,13 @@ yauzl@^2.10.0: dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From 2c3aa84352ca8eaed42a9ac0b59a1187e7850b6a Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 27 Sep 2023 09:29:38 -0400 Subject: [PATCH 403/412] release v4.4.6 --- CHANGELOG.md | 5 +++++ package.json | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 355246e7..77c91b22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +### 4.4.6 (Sep 27, 2023) + +- Fix: state inconsistency in React 18 #699 +- Internal: devDependencies updates + ### 4.4.5 (Apr 26, 2022) - Fix: `grid` prop unused in `handleDragStop` #621 diff --git a/package.json b/package.json index 55d83901..6b1bdc94 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.4.5", + "version": "4.4.6", "description": "React draggable component", "main": "build/cjs/cjs.js", "unpkg": "build/web/react-draggable.min.js", @@ -100,4 +100,4 @@ "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } -} +} \ No newline at end of file From 067fbdb096d3a2ae084c67bb117c1a2bad900c74 Mon Sep 17 00:00:00 2001 From: Thomas Willheim Date: Sat, 10 Aug 2024 09:03:46 -0700 Subject: [PATCH 404/412] fix: add allowMobileScroll prop to allow for clicks to optionally pass through on mobile (#760) * fix: add doNotPreventMobileScroll prop to allow for clicks to optionally pass through on mobile * fix: switch doNotPreventMobileScroll to allowMobileScroll * fix: update prop in draggable core to allowMobileScroll * chore(allowMobileScroll): update readme and tests --------- Co-authored-by: Samuel Reed --- README.md | 12 ++++++++++++ lib/DraggableCore.js | 13 ++++++++++++- specs/draggable.spec.jsx | 12 ++++++++++++ typings/index.d.ts | 1 + typings/test.tsx | 6 ++++-- 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 50cfefd6..cdffebc0 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,14 @@ type DraggableData = { // If set to `true`, will allow dragging on non left-button clicks. allowAnyClick: boolean, +// Default `false` and default behavior before 4.5.0. +// If set to `true`, the 'touchstart' event will not be prevented, +// which will allow scrolling inside containers. We recommend +// using the 'handle' / 'cancel' props when possible instead of enabling this. +// +// See https://github.com/react-grid-layout/react-draggable/issues/728 +allowMobileScroll: boolean, + // Determines which axis the draggable can move. This only affects // flushing to the DOM. Callbacks will still include all values. // Accepted values: @@ -202,6 +210,9 @@ defaultPosition: {x: number, y: number}, // If true, will not call any drag handlers. disabled: boolean, +// Default `true`. Adds "user-select: none" while dragging to avoid selecting text. +enableUserSelectHack: boolean, + // Specifies the x and y that dragging should snap to. grid: [number, number], @@ -324,6 +335,7 @@ on itself and thus must have callbacks attached to be useful. ```js { allowAnyClick: boolean, + allowMobileScroll: boolean, cancel: string, disabled: boolean, enableUserSelectHack: boolean, diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 6b464aa0..cae61661 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -42,6 +42,7 @@ export type PositionOffsetControlPosition = {x: number|string, y: number|string} export type DraggableCoreDefaultProps = { allowAnyClick: boolean, + allowMobileScroll: boolean, disabled: boolean, enableUserSelectHack: boolean, onStart: DraggableEventHandler, @@ -81,6 +82,15 @@ export default class DraggableCore extends React.Component { */ allowAnyClick: PropTypes.bool, + /** + * `allowMobileScroll` turns off cancellation of the 'touchstart' event + * on mobile devices. Only enable this if you are having trouble with click + * events. Prefer using 'handle' / 'cancel' instead. + * + * Defaults to `false`. + */ + allowMobileScroll: PropTypes.bool, + children: PropTypes.node.isRequired, /** @@ -213,6 +223,7 @@ export default class DraggableCore extends React.Component { static defaultProps: DraggableCoreDefaultProps = { allowAnyClick: false, // by default only accept left click + allowMobileScroll: false, disabled: false, enableUserSelectHack: true, onStart: function(){}, @@ -288,7 +299,7 @@ export default class DraggableCore extends React.Component { // Prevent scrolling on mobile devices, like ipad/iphone. // Important that this is after handle/cancel. - if (e.type === 'touchstart') e.preventDefault(); + if (e.type === 'touchstart' && !this.props.allowMobileScroll) e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to // distinguish between individual touches on multitouch screens by identifying which diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 51ed3b4d..143eae96 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -622,6 +622,18 @@ describe('react-draggable', function () { assert.equal(drag.state.dragging, true); }); + it('should *not* call preventDefault on touchStart event if "allowMobileScroll"', function () { + drag = TestUtils.renderIntoDocument(
); + + const e = new Event('touchstart'); + // Oddly `e.defaultPrevented` is not changing here. Maybe because we're not mounted to a real doc? + let pdCalled = false; + e.preventDefault = function() { pdCalled = true; }; + ReactDOM.findDOMNode(drag).dispatchEvent(e); + assert(!pdCalled); + assert.equal(drag.state.dragging, true); + }); + it('should not call preventDefault on touchStart event if not on handle', function () { drag = TestUtils.renderIntoDocument( diff --git a/typings/index.d.ts b/typings/index.d.ts index bcbc6ff3..2ad9ec79 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -42,6 +42,7 @@ declare module 'react-draggable' { export interface DraggableCoreProps { allowAnyClick: boolean, + allowMobileScroll: boolean, cancel: string, children?: React.ReactNode, disabled: boolean, diff --git a/typings/test.tsx b/typings/test.tsx index 87562d49..0532f949 100644 --- a/typings/test.tsx +++ b/typings/test.tsx @@ -20,8 +20,9 @@ ReactDOM.render( onDrag={handleDrag} onStop={handleStop} offsetParent={document.body} - allowAnyClick={true} onMouseDown={handleMouseDown} + allowAnyClick={true} + allowMobileScroll={false} disabled={true} enableUserSelectHack={false} bounds={false} @@ -54,7 +55,8 @@ ReactDOM.render( onDrag={handleDrag} onStop={handleStop} offsetParent={document.body} - enableUserSelectHack={false}> + enableUserSelectHack={false} + allowMobileScroll={false}>
From a61bd5feaee52f753375ab1955cafe3881b2bc14 Mon Sep 17 00:00:00 2001 From: avoskresensky Date: Mon, 26 Aug 2024 07:09:56 -0700 Subject: [PATCH 405/412] optimizations: setState in lifecycles + forced reflow (#556) --- lib/Draggable.js | 4 +++- lib/DraggableCore.js | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index cc30e4f6..fc48c6a5 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -236,7 +236,9 @@ class Draggable extends React.Component { } componentWillUnmount() { - this.setState({dragging: false}); // prevents invariant if unmounted while dragging + if (this.state.dragging) { + this.setState({dragging: false}); // prevents invariant if unmounted while dragging + } } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index cae61661..8269a390 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -265,7 +265,16 @@ export default class DraggableCore extends React.Component { removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop); removeEvent(thisNode, eventsFor.touch.start, this.onTouchStart, {passive: false}); - if (this.props.enableUserSelectHack) removeUserSelectStyles(ownerDocument); + if (this.props.enableUserSelectHack) { + // prevent a possible "forced reflow" + if (window.requestAnimationFrame) { + window.requestAnimationFrame(() => { + removeUserSelectStyles(ownerDocument); + }); + } else { + removeUserSelectStyles(ownerDocument); + } + } } } From 3fc5126ced1c847e16c19d2d02963cdfdd76ad00 Mon Sep 17 00:00:00 2001 From: JefHellemansBlockbax <141717908+JefHellemansBlockbax@users.noreply.github.com> Date: Wed, 25 Jun 2025 19:51:18 +0200 Subject: [PATCH 406/412] Fix forgotten requestAnimationFrame call (#773) --- lib/DraggableCore.js | 15 +++------------ lib/utils/domFns.js | 13 ++++++++++++- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/DraggableCore.js b/lib/DraggableCore.js index 8269a390..e673e024 100644 --- a/lib/DraggableCore.js +++ b/lib/DraggableCore.js @@ -3,7 +3,7 @@ import * as React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; import {matchesSelectorAndParentsTo, addEvent, removeEvent, addUserSelectStyles, getTouchIdentifier, - removeUserSelectStyles} from './utils/domFns'; + scheduleRemoveUserSelectStyles} from './utils/domFns'; import {createCoreData, getControlPosition, snapToGrid} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; import log from './utils/log'; @@ -265,16 +265,7 @@ export default class DraggableCore extends React.Component { removeEvent(ownerDocument, eventsFor.mouse.stop, this.handleDragStop); removeEvent(ownerDocument, eventsFor.touch.stop, this.handleDragStop); removeEvent(thisNode, eventsFor.touch.start, this.onTouchStart, {passive: false}); - if (this.props.enableUserSelectHack) { - // prevent a possible "forced reflow" - if (window.requestAnimationFrame) { - window.requestAnimationFrame(() => { - removeUserSelectStyles(ownerDocument); - }); - } else { - removeUserSelectStyles(ownerDocument); - } - } + if (this.props.enableUserSelectHack) scheduleRemoveUserSelectStyles(ownerDocument); } } @@ -413,7 +404,7 @@ export default class DraggableCore extends React.Component { const thisNode = this.findDOMNode(); if (thisNode) { // Remove user-select hack - if (this.props.enableUserSelectHack) removeUserSelectStyles(thisNode.ownerDocument); + if (this.props.enableUserSelectHack) scheduleRemoveUserSelectStyles(thisNode.ownerDocument); } log('DraggableCore: handleDragStop: %j', coreEvent); diff --git a/lib/utils/domFns.js b/lib/utils/domFns.js index 511daa40..3744af01 100644 --- a/lib/utils/domFns.js +++ b/lib/utils/domFns.js @@ -166,7 +166,18 @@ export function addUserSelectStyles(doc: ?Document) { if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection'); } -export function removeUserSelectStyles(doc: ?Document) { +export function scheduleRemoveUserSelectStyles(doc: ?Document) { + // Prevent a possible "forced reflow" + if (window.requestAnimationFrame) { + window.requestAnimationFrame(() => { + removeUserSelectStyles(doc); + }); + } else { + removeUserSelectStyles(doc); + } +} + +function removeUserSelectStyles(doc: ?Document) { if (!doc) return; try { if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); From 9e6afaa856bd812ddcf99ccbae250d9b5d14347c Mon Sep 17 00:00:00 2001 From: Philipp Keck Date: Wed, 25 Jun 2025 19:51:44 +0200 Subject: [PATCH 407/412] Update nodeRef type for React v19 compatibility (#769) Fixes #768. See also https://react.dev/blog/2024/04/25/react-19-upgrade-guide#useref-requires-argument. Only a type change is required, because React's typings (DefinitelyTyped) were changed. The implementation in DraggableCore.js itself already tolerates / guard against `.current==null` everywhere. --- typings/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index 2ad9ec79..14d29b8c 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -50,7 +50,7 @@ declare module 'react-draggable' { offsetParent: HTMLElement, grid: [number, number], handle: string, - nodeRef?: React.RefObject, + nodeRef?: React.RefObject, onStart: DraggableEventHandler, onDrag: DraggableEventHandler, onStop: DraggableEventHandler, From 2e8b4fe1d82645b47ddea223c919c5e4acaa9ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20Calder=C3=B3n?= Date: Wed, 25 Jun 2025 19:52:32 +0200 Subject: [PATCH 408/412] Fix bounds="selector" functionality when in a Shadow DOM tree. (#763) * Use querySelector on root node instead of just ownerDocument for Shadow DOM compatibility. * Add tests. --- lib/utils/positionFns.js | 8 ++- specs/draggable.spec.jsx | 123 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 1 deletion(-) diff --git a/lib/utils/positionFns.js b/lib/utils/positionFns.js index 74b57e5a..248d4d0b 100644 --- a/lib/utils/positionFns.js +++ b/lib/utils/positionFns.js @@ -22,8 +22,14 @@ export function getBoundPosition(draggable: Draggable, x: number, y: number): [n if (bounds === 'parent') { boundNode = node.parentNode; } else { - boundNode = ownerDocument.querySelector(bounds); + // Flow assigns the wrong return type (Node) for getRootNode(), + // so we cast it to one of the correct types (Element). + // The others are Document and ShadowRoot. + // All three implement querySelector() so it's safe to call. + const rootNode = (((node.getRootNode()): any): Element); + boundNode = rootNode.querySelector(bounds); } + if (!(boundNode instanceof ownerWindow.HTMLElement)) { throw new Error('Bounds selector "' + bounds + '" could not find an element.'); } diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index 143eae96..cd014f78 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -807,6 +807,129 @@ describe('react-draggable', function () { }); + it('should clip dragging to parent, with bounds set to "parent"', function(done){ + function onDrag(event, data) { + assert.equal(data.x, 100); + assert.equal(data.y, 100); + assert.equal(data.deltaX, 50); + assert.equal(data.deltaY, 50); + done(); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + const node = ReactDOM.findDOMNode(drag); + + // Create a parent container. + const fragment = fragmentFromString(` +
+
+ `); + transplantNodeInto(node, fragment, (f) => f); + + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 50, 50, 350, 350); + + }); + + it('should clip dragging to parent, with bounds set to "parent", in a shadow tree', function(done){ + function onDrag(event, data) { + assert.equal(data.x, 100); + assert.equal(data.y, 100); + assert.equal(data.deltaX, 50); + assert.equal(data.deltaY, 50); + done(); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + const node = ReactDOM.findDOMNode(drag); + + // Create a parent container. + const fragment = fragmentFromString(` +
+
+ `); + + // Add the parent fragment to a shadow root + const div = document.createElement('div'); + const shadowRoot = div.attachShadow({mode: 'open'}); + shadowRoot.appendChild(fragment); + + transplantNodeInto(node, shadowRoot, (f) => f.children[0]); + + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 50, 50, 350, 350); + + }); + + it('should clip dragging to parent, with bounds set to selector', function(done){ + function onDrag(event, data) { + assert.equal(data.x, 100); + assert.equal(data.y, 100); + assert.equal(data.deltaX, 50); + assert.equal(data.deltaY, 50); + done(); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + const node = ReactDOM.findDOMNode(drag); + + // Create a parent container. + const fragment = fragmentFromString(` +
+
+ `); + transplantNodeInto(node, fragment, (f) => f); + + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 50, 50, 350, 350); + + }); + + it('should clip dragging to parent, with bounds set to selector, in a shadow tree', function(done){ + function onDrag(event, data) { + assert.equal(data.x, 100); + assert.equal(data.y, 100); + assert.equal(data.deltaX, 50); + assert.equal(data.deltaY, 50); + done(); + } + drag = TestUtils.renderIntoDocument( + +
+ + ); + const node = ReactDOM.findDOMNode(drag); + + // Create a parent container. + const fragment = fragmentFromString(` +
+
+ `); + + // Add the parent fragment to a shadow root + const div = document.createElement('div'); + const shadowRoot = div.attachShadow({mode: 'open'}); + shadowRoot.appendChild(fragment); + + transplantNodeInto(node, shadowRoot, (f) => f.children[0]); + + // (element, fromX, fromY, toX, toY) + simulateMovementFromTo(drag, 50, 50, 350, 350); + + }); + it('should call back with offset left/top, not client', function(done) { function onDrag(event, data) { assert.equal(data.x, 100); From 18e525fdc268652e41813ca9f6cfd9e11664e927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Block=C3=A5s?= Date: Wed, 25 Jun 2025 19:52:52 +0200 Subject: [PATCH 409/412] fix/esm-rollup-clsx (#754) * update clsx to clsx in package.json * set clsx as named import instead of default related to: https://github.com/lukeed/clsx/pull/57 also related to: https://github.com/react-grid-layout/react-draggable/issues/667 * chore: update yarn.lock --- lib/Draggable.js | 2 +- package.json | 4 ++-- yarn.lock | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/Draggable.js b/lib/Draggable.js index fc48c6a5..1ce95ee1 100644 --- a/lib/Draggable.js +++ b/lib/Draggable.js @@ -2,7 +2,7 @@ import * as React from 'react'; import PropTypes from 'prop-types'; import ReactDOM from 'react-dom'; -import clsx from 'clsx'; +import { clsx } from 'clsx'; import {createCSSTransform, createSVGTransform} from './utils/domFns'; import {canDragX, canDragY, createDraggableData, getBoundPosition} from './utils/positionFns'; import {dontSetMe} from './utils/shims'; diff --git a/package.json b/package.json index 6b1bdc94..13b55a70 100644 --- a/package.json +++ b/package.json @@ -93,11 +93,11 @@ "test" ], "dependencies": { - "clsx": "^1.1.1", + "clsx": "^2.1.1", "prop-types": "^15.8.1" }, "peerDependencies": { "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 310f9f18..047b99cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2049,10 +2049,10 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -clsx@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== +clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== color-convert@^1.9.0: version "1.9.3" From e1f5d026e2a639054a86cf6b22327c16d214bdbe Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 25 Jun 2025 14:14:57 -0400 Subject: [PATCH 410/412] fix(test): fix rAF killing userselecthack tests --- specs/draggable.spec.jsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/specs/draggable.spec.jsx b/specs/draggable.spec.jsx index cd014f78..3c4c5bce 100644 --- a/specs/draggable.spec.jsx +++ b/specs/draggable.spec.jsx @@ -26,6 +26,7 @@ describe('react-draggable', function () { beforeEach(function() { spyOn(console, 'error'); + spyOn(window, 'requestAnimationFrame').and.callFake(function(fn) { fn(); }); }); afterEach(function() { @@ -368,6 +369,8 @@ describe('react-draggable', function () { assert(document.body.classList.contains('react-draggable-transparent-selection')); TestUtils.Simulate.mouseUp(node); assert(!document.body.classList.contains('react-draggable-transparent-selection')); + + assert(window.requestAnimationFrame.calls.any()); // should have been called }); it('should not add and remove transparent selection class when disabled', function () { @@ -385,6 +388,8 @@ describe('react-draggable', function () { assert(!document.body.classList.contains('react-draggable-transparent-selection')); TestUtils.Simulate.mouseUp(node); assert(!document.body.classList.contains('react-draggable-transparent-selection')); + + assert(!window.requestAnimationFrame.calls.any()); // should not have been called }); it('should not add and remove transparent selection class when onStart returns false', function () { @@ -403,6 +408,8 @@ describe('react-draggable', function () { assert(!document.body.classList.contains('react-draggable-transparent-selection')); TestUtils.Simulate.mouseUp(node); assert(!document.body.classList.contains('react-draggable-transparent-selection')); + + assert(!window.requestAnimationFrame.calls.any()); // should not have been called }); it('should not defocus inputs when unmounting', function () { From eba23080c3c110829aa2b8d02ae8c544848915d9 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 25 Jun 2025 14:26:05 -0400 Subject: [PATCH 411/412] chore(pkg): update lots of devDeps --- eslint.config.mjs | 58 + package.json | 49 +- yarn.lock | 6097 ++++++++++++++++++++++----------------------- 3 files changed, 3121 insertions(+), 3083 deletions(-) create mode 100644 eslint.config.mjs diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..11cf50d9 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,58 @@ +import { defineConfig, globalIgnores } from "eslint/config"; +import react from "eslint-plugin-react"; +import globals from "globals"; +import babelParser from "@babel/eslint-parser"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default defineConfig([globalIgnores(["build/**/*.js"]), { + extends: compat.extends("eslint:recommended"), + + plugins: { + react, + }, + + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + ReactElement: null, + ReactClass: null, + $Exact: null, + Partial: null, + $Keys: null, + MouseTouchEvent: null, + }, + + parser: babelParser, + }, + + rules: { + strict: 0, + quotes: [1, "single"], + curly: [1, "multi-line"], + camelcase: 0, + "comma-dangle": 0, + "no-console": 2, + "no-use-before-define": [1, "nofunc"], + "no-underscore-dangle": 0, + + "no-unused-vars": [1, { + ignoreRestSiblings: true, + }], + + "new-cap": 0, + "prefer-const": 1, + semi: 1, + }, +}]); \ No newline at end of file diff --git a/package.json b/package.json index 13b55a70..0f2657da 100644 --- a/package.json +++ b/package.json @@ -42,48 +42,51 @@ }, "homepage": "https://github.com/react-grid-layout/react-draggable", "devDependencies": { - "@babel/cli": "^7.23.0", - "@babel/core": "^7.23.0", - "@babel/eslint-parser": "^7.22.15", - "@babel/plugin-transform-class-properties": "^7.18.6", - "@babel/plugin-transform-flow-comments": "^7.22.10", - "@babel/preset-env": "^7.22.20", - "@babel/preset-flow": "^7.22.15", - "@babel/preset-react": "^7.22.15", - "@types/node": "^20.7.0", "@types/react": "^18.2.23", "@types/react-dom": "^18.2.8", + "@babel/cli": "^7.27.2", + "@babel/core": "^7.27.4", + "@babel/eslint-parser": "^7.27.5", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-flow-comments": "^7.27.3", + "@babel/preset-env": "^7.27.2", + "@babel/preset-flow": "^7.27.1", + "@babel/preset-react": "^7.27.1", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.29.0", + "@types/node": "^24.0.4", "assert": "^2.1.0", - "babel-loader": "^9.1.3", + "babel-loader": "^10.0.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", - "eslint": "^8.50.0", - "eslint-plugin-react": "^7.33.2", + "eslint": "^9.29.0", + "eslint-plugin-react": "^7.37.5", "flow-bin": "^0.217.0", - "jasmine-core": "^5.1.1", - "karma": "^6.4.2", + "globals": "^16.2.0", + "jasmine-core": "^5.8.0", + "karma": "^6.4.4", "karma-chrome-launcher": "^3.2.0", "karma-cli": "2.0.0", - "karma-firefox-launcher": "^2.1.2", + "karma-firefox-launcher": "^2.1.3", "karma-ie-launcher": "^1.0.0", "karma-jasmine": "^5.1.0", "karma-phantomjs-launcher": "^1.0.4", "karma-phantomjs-shim": "^1.5.0", - "karma-webpack": "^5.0.0", + "karma-webpack": "^5.0.1", "lodash": "^4.17.4", "phantomjs-prebuilt": "^2.1.16", "pre-commit": "^1.2.2", "process": "^0.11.10", - "puppeteer": "^21.3.5", + "puppeteer": "^24.10.2", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-frame-component": "^5.2.6", + "react-frame-component": "^5.2.7", "react-test-renderer": "^16.13.1", - "semver": "^7.5.4", + "semver": "^7.7.2", "static-server": "^3.0.0", - "typescript": "^5.2.2", - "webpack": "^5.88.2", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.1" + "typescript": "^5.8.3", + "webpack": "^5.99.9", + "webpack-cli": "^6.0.1", + "webpack-dev-server": "^5.2.2" }, "resolutions": { "minimist": "^1.2.5" diff --git a/yarn.lock b/yarn.lock index 047b99cb..0c731a59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,24 +4,24 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@ampproject/remapping@^2.2.0": version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz" integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/cli@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.0.tgz#1d7f37c44d4117c67df46749e0c86e11a58cc64b" - integrity sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA== +"@babel/cli@^7.27.2": + version "7.27.2" + resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.27.2.tgz" + integrity sha512-cfd7DnGlhH6OIyuPSSj3vcfIdnbXukhAyKY8NaZrFadC7pXyL9mOL5WgjcptiEJLi5k3j8aYvLIVCzezrWTaiA== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" - commander "^4.0.1" + "@jridgewell/trace-mapping" "^0.3.25" + commander "^6.2.0" convert-source-map "^2.0.0" fs-readdir-recursive "^1.1.0" glob "^7.2.0" @@ -29,114 +29,107 @@ slash "^2.0.0" optionalDependencies: "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" - chokidar "^3.4.0" + chokidar "^3.6.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" -"@babel/compat-data@^7.22.20", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" - integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.27.2": + version "7.27.5" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz" + integrity sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg== -"@babel/core@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" - integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== +"@babel/core@^7.27.4": + version "7.27.4" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz" + integrity sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helpers" "^7.23.0" - "@babel/parser" "^7.23.0" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.0" - "@babel/types" "^7.23.0" + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.3" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.27.3" + "@babel/helpers" "^7.27.4" + "@babel/parser" "^7.27.4" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.27.4" + "@babel/types" "^7.27.3" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/eslint-parser@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" - integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== +"@babel/eslint-parser@^7.27.5": + version "7.27.5" + resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.5.tgz" + integrity sha512-HLkYQfRICudzcOtjGwkPvGc5nF1b4ljLZh1IRDj50lRZ718NAKVgQpIAUX8bfg6u/yuSKY3L7E0YzIV+OxrB8Q== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.22.10", "@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== - dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== +"@babel/generator@^7.27.3": + version "7.27.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz" + integrity sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw== dependencies: - "@babel/types" "^7.22.5" + "@babel/parser" "^7.27.5" + "@babel/types" "^7.27.3" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" - integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== +"@babel/helper-annotate-as-pure@^7.27.1": + version "7.27.3" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz" + integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== dependencies: - "@babel/types" "^7.22.15" + "@babel/types" "^7.27.3" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" - integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" +"@babel/helper-create-class-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz" + integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.27.1" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" - integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz" + integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - regexpu-core "^5.3.1" + "@babel/helper-annotate-as-pure" "^7.27.1" + regexpu-core "^6.2.0" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" - integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== +"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": + version "0.6.4" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz" + integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -144,994 +137,893 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== +"@babel/helper-member-expression-to-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz" + integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.27.3": + version "7.27.3" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz" + integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.3" -"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== +"@babel/helper-optimise-call-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + "@babel/types" "^7.27.1" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-remap-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz" + integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== dependencies: - "@babel/types" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-wrap-function" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/helper-member-expression-to-functions@^7.22.15": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" - integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== +"@babel/helper-replace-supers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz" + integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== dependencies: - "@babel/types" "^7.23.0" - -"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" - integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" - integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-wrap-function" "^7.22.20" - -"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" - integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== - -"@babel/helper-wrap-function@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" - integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.15" - "@babel/types" "^7.22.19" - -"@babel/helpers@^7.23.0": - version "7.23.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" - integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.0" - "@babel/types" "^7.23.0" - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" - integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== +"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" - integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.15" +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== +"@babel/helper-wrap-function@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz" + integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/template" "^7.27.1" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== +"@babel/helpers@^7.27.4": + version "7.27.6" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz" + integrity sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.6" -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== +"@babel/parser@^7.27.2", "@babel/parser@^7.27.4", "@babel/parser@^7.27.5": + version "7.27.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz" + integrity sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + "@babel/types" "^7.27.3" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz" + integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" - integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz" + integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz" + integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz" + integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz" + integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== +"@babel/plugin-syntax-flow@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz" + integrity sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== +"@babel/plugin-syntax-import-assertions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz" + integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== +"@babel/plugin-syntax-import-attributes@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== +"@babel/plugin-syntax-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== +"@babel/plugin-transform-arrow-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-async-generator-functions@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" - integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== +"@babel/plugin-transform-async-generator-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz" + integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== +"@babel/plugin-transform-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz" + integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== +"@babel/plugin-transform-block-scoped-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-block-scoping@^7.22.15": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" - integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== +"@babel/plugin-transform-block-scoping@^7.27.1": + version "7.27.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz" + integrity sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-properties@^7.18.6", "@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== +"@babel/plugin-transform-class-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz" + integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-static-block@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" - integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== +"@babel/plugin-transform-class-static-block@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz" + integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.11" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-transform-classes@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" - integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-classes@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz" + integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/traverse" "^7.27.1" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== +"@babel/plugin-transform-computed-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz" + integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/template" "^7.27.1" -"@babel/plugin-transform-destructuring@^7.22.15": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" - integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== +"@babel/plugin-transform-destructuring@^7.27.1", "@babel/plugin-transform-destructuring@^7.27.3": + version "7.27.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz" + integrity sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-dotall-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== +"@babel/plugin-transform-dotall-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz" + integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== +"@babel/plugin-transform-duplicate-keys@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz" + integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-dynamic-import@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" - integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz" + integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== +"@babel/plugin-transform-dynamic-import@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz" + integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-export-namespace-from@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" - integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== +"@babel/plugin-transform-exponentiation-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz" + integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-flow-comments@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.22.10.tgz#59972dc2bba44a311c13c4dafcfff5856803d801" - integrity sha512-NeboB434W7jT9ttomDpFS5u5JxeJmAlSh7YZpIxIsYNvNTr54vX2T12z7ohdKgzm6N6nfRhG9u9ktat7NL53TA== +"@babel/plugin-transform-export-namespace-from@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz" + integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== dependencies: - "@babel/generator" "^7.22.10" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-flow-strip-types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" - integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== +"@babel/plugin-transform-flow-comments@^7.27.3": + version "7.27.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.27.3.tgz" + integrity sha512-TBx8ip3mpiWUBBXdYOipxon6f9nM5udhiYaW+h3FhVBEAmuRvRIx6Q7uhtrLacLSNQJoweFaUe+UzAU32BaziA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.22.5" + "@babel/generator" "^7.27.3" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-flow" "^7.27.1" -"@babel/plugin-transform-for-of@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" - integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== +"@babel/plugin-transform-flow-strip-types@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz" + integrity sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-flow" "^7.27.1" -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== +"@babel/plugin-transform-for-of@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-json-strings@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" - integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== +"@babel/plugin-transform-function-name@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== +"@babel/plugin-transform-json-strings@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz" + integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-logical-assignment-operators@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" - integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== +"@babel/plugin-transform-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== +"@babel/plugin-transform-logical-assignment-operators@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz" + integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-amd@^7.22.5": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" - integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== +"@babel/plugin-transform-member-expression-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== dependencies: - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-commonjs@^7.22.15": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" - integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== +"@babel/plugin-transform-modules-amd@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz" + integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== dependencies: - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-systemjs@^7.22.11": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" - integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== +"@babel/plugin-transform-modules-commonjs@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz" + integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-umd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== +"@babel/plugin-transform-modules-systemjs@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz" + integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== +"@babel/plugin-transform-modules-umd@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz" + integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz" + integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" - integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== +"@babel/plugin-transform-new-target@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz" + integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-numeric-separator@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" - integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== +"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz" + integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-rest-spread@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" - integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== +"@babel/plugin-transform-numeric-separator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz" + integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== +"@babel/plugin-transform-object-rest-spread@^7.27.2": + version "7.27.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz" + integrity sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.3" + "@babel/plugin-transform-parameters" "^7.27.1" -"@babel/plugin-transform-optional-catch-binding@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" - integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== +"@babel/plugin-transform-object-super@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" -"@babel/plugin-transform-optional-chaining@^7.22.15": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" - integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== +"@babel/plugin-transform-optional-catch-binding@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz" + integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-parameters@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" - integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== +"@babel/plugin-transform-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz" + integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== +"@babel/plugin-transform-parameters@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz" + integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-private-property-in-object@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" - integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== +"@babel/plugin-transform-private-methods@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz" + integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.11" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-property-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== +"@babel/plugin-transform-private-property-in-object@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz" + integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-display-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" - integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== +"@babel/plugin-transform-property-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-jsx-development@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" - integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== +"@babel/plugin-transform-react-display-name@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz" + integrity sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ== dependencies: - "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" - integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== +"@babel/plugin-transform-react-jsx-development@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz" + integrity sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.15" + "@babel/plugin-transform-react-jsx" "^7.27.1" -"@babel/plugin-transform-react-pure-annotations@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" - integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== +"@babel/plugin-transform-react-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz" + integrity sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/types" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" - integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== +"@babel/plugin-transform-react-pure-annotations@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz" + integrity sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.2" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== +"@babel/plugin-transform-regenerator@^7.27.1": + version "7.27.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz" + integrity sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== +"@babel/plugin-transform-regexp-modifiers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz" + integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== +"@babel/plugin-transform-reserved-words@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz" + integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== +"@babel/plugin-transform-shorthand-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== +"@babel/plugin-transform-spread@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz" + integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== +"@babel/plugin-transform-sticky-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz" + integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-template-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-escapes@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" - integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== +"@babel/plugin-transform-typeof-symbol@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz" + integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== +"@babel/plugin-transform-unicode-escapes@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz" + integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== +"@babel/plugin-transform-unicode-property-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz" + integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== +"@babel/plugin-transform-unicode-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz" + integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/preset-env@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.20.tgz#de9e9b57e1127ce0a2f580831717f7fb677ceedb" - integrity sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg== +"@babel/plugin-transform-unicode-sets-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz" + integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== dependencies: - "@babel/compat-data" "^7.22.20" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/preset-env@^7.27.2": + version "7.27.2" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz" + integrity sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-import-assertions" "^7.27.1" + "@babel/plugin-syntax-import-attributes" "^7.27.1" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.15" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.15" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.11" - "@babel/plugin-transform-classes" "^7.22.15" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.15" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.11" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.11" - "@babel/plugin-transform-for-of" "^7.22.15" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.11" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.15" - "@babel/plugin-transform-modules-systemjs" "^7.22.11" - "@babel/plugin-transform-modules-umd" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" - "@babel/plugin-transform-numeric-separator" "^7.22.11" - "@babel/plugin-transform-object-rest-spread" "^7.22.15" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.22.15" - "@babel/plugin-transform-parameters" "^7.22.15" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.11" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.10" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.10" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/plugin-transform-arrow-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.27.1" + "@babel/plugin-transform-async-to-generator" "^7.27.1" + "@babel/plugin-transform-block-scoped-functions" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.27.1" + "@babel/plugin-transform-class-properties" "^7.27.1" + "@babel/plugin-transform-class-static-block" "^7.27.1" + "@babel/plugin-transform-classes" "^7.27.1" + "@babel/plugin-transform-computed-properties" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-dotall-regex" "^7.27.1" + "@babel/plugin-transform-duplicate-keys" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-exponentiation-operator" "^7.27.1" + "@babel/plugin-transform-export-namespace-from" "^7.27.1" + "@babel/plugin-transform-for-of" "^7.27.1" + "@babel/plugin-transform-function-name" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.27.1" + "@babel/plugin-transform-literals" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" + "@babel/plugin-transform-member-expression-literals" "^7.27.1" + "@babel/plugin-transform-modules-amd" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-modules-systemjs" "^7.27.1" + "@babel/plugin-transform-modules-umd" "^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-new-target" "^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" + "@babel/plugin-transform-numeric-separator" "^7.27.1" + "@babel/plugin-transform-object-rest-spread" "^7.27.2" + "@babel/plugin-transform-object-super" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" + "@babel/plugin-transform-private-methods" "^7.27.1" + "@babel/plugin-transform-private-property-in-object" "^7.27.1" + "@babel/plugin-transform-property-literals" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.27.1" + "@babel/plugin-transform-regexp-modifiers" "^7.27.1" + "@babel/plugin-transform-reserved-words" "^7.27.1" + "@babel/plugin-transform-shorthand-properties" "^7.27.1" + "@babel/plugin-transform-spread" "^7.27.1" + "@babel/plugin-transform-sticky-regex" "^7.27.1" + "@babel/plugin-transform-template-literals" "^7.27.1" + "@babel/plugin-transform-typeof-symbol" "^7.27.1" + "@babel/plugin-transform-unicode-escapes" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.27.1" + "@babel/plugin-transform-unicode-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.22.19" - babel-plugin-polyfill-corejs2 "^0.4.5" - babel-plugin-polyfill-corejs3 "^0.8.3" - babel-plugin-polyfill-regenerator "^0.5.2" - core-js-compat "^3.31.0" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.11.0" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.40.0" semver "^6.3.1" -"@babel/preset-flow@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.15.tgz#30318deb9b3ebd9f5738e96da03a531e0cd3165d" - integrity sha512-dB5aIMqpkgbTfN5vDdTRPzjqtWiZcRESNR88QYnoPR+bmdYoluOzMX9tQerTv0XzSgZYctPfO1oc0N5zdog1ew== +"@babel/preset-flow@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.27.1.tgz" + integrity sha512-ez3a2it5Fn6P54W8QkbfIyyIbxlXvcxyWHHvno1Wg0Ej5eiJY5hBb8ExttoIOJJk7V2dZE6prP7iby5q2aQ0Lg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-transform-flow-strip-types" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-transform-flow-strip-types" "^7.27.1" "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.15.tgz#9a776892b648e13cc8ca2edf5ed1264eea6b6afc" - integrity sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-transform-react-display-name" "^7.22.5" - "@babel/plugin-transform-react-jsx" "^7.22.15" - "@babel/plugin-transform-react-jsx-development" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations" "^7.22.5" - -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime@^7.8.4": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" - integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.22.15", "@babel/template@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" - integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" - debug "^4.1.0" +"@babel/preset-react@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz" + integrity sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-transform-react-display-name" "^7.27.1" + "@babel/plugin-transform-react-jsx" "^7.27.1" + "@babel/plugin-transform-react-jsx-development" "^7.27.1" + "@babel/plugin-transform-react-pure-annotations" "^7.27.1" + +"@babel/template@^7.27.1", "@babel/template@^7.27.2": + version "7.27.2" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.27.4": + version "7.27.4" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz" + integrity sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.3" + "@babel/parser" "^7.27.4" + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.3" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.4": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.4.4": + version "7.27.6" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz" + integrity sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@discoveryjs/json-ext@^0.6.1": + version "0.6.3" + resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz" + integrity sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ== "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.6.1": - version "4.9.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.0.tgz#7ccb5f58703fa61ffdcbf39e2c604a109e781162" - integrity sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ== +"@eslint-community/regexpp@^4.12.1": + version "4.12.1" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/config-array@^0.20.1": + version "0.20.1" + resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz" + integrity sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw== + dependencies: + "@eslint/object-schema" "^2.1.6" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/config-helpers@^0.2.1": + version "0.2.3" + resolved "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz" + integrity sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg== + +"@eslint/core@^0.14.0": + version "0.14.0" + resolved "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz" + integrity sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/core@^0.15.1": + version "0.15.1" + resolved "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz" + integrity sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/eslintrc@^3.3.1": + version "3.3.1" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz" + integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.50.0": - version "8.50.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" - integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== +"@eslint/js@9.29.0", "@eslint/js@^9.29.0": + version "9.29.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz" + integrity sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ== -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@eslint/object-schema@^2.1.6": + version "2.1.6" + resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz" + integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== + +"@eslint/plugin-kit@^0.3.1": + version "0.3.3" + resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.3.tgz" + integrity sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" + "@eslint/core" "^0.15.1" + levn "^0.4.1" + +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.6": + version "0.16.6" + resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== + dependencies: + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.3.0" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/retry@^0.3.0": + version "0.3.1" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@humanwhocodes/retry@^0.4.2": + version "0.4.3" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz" + integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/source-map@^0.3.3": version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz" integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: "@jridgewell/gen-mapping" "^0.3.0" @@ -1139,466 +1031,453 @@ "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jsonjoy.com/base64@^1.1.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz" + integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== + +"@jsonjoy.com/json-pack@^1.0.3": + version "1.2.0" + resolved "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.2.0.tgz" + integrity sha512-io1zEbbYcElht3tdlqEOFxZ0dMTYrHz9iMf0gqn1pPjZFTCgM5R4R5IMA20Chb2UPYYsxjzs8CgZ7Nb5n2K2rA== + dependencies: + "@jsonjoy.com/base64" "^1.1.1" + "@jsonjoy.com/util" "^1.1.2" + hyperdyperid "^1.2.0" + thingies "^1.20.0" + +"@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0": + version "1.6.0" + resolved "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.6.0.tgz" + integrity sha512-sw/RMbehRhN68WRtcKCpQOPfnH6lLP4GJfqzi3iYej8tnzpZUDr6UkZYJjcjjC0FWEJOJbyM3PTIwxucUmDG2A== + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.3" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" + resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz" integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + resolved "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + resolved "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz" integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== dependencies: eslint-scope "5.1.1" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== +"@puppeteer/browsers@2.10.5": + version "2.10.5" + resolved "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.5.tgz" + integrity sha512-eifa0o+i8dERnngJwKrfp3dEq7ia5XFyoqB17S4gK8GhsQE4/P8nxOfQSE0zQHxzzLo/cmF+7+ywEQ7wK7Fb+w== dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + debug "^4.4.1" + extract-zip "^2.0.1" + progress "^2.0.3" + proxy-agent "^6.5.0" + semver "^7.7.2" + tar-fs "^3.0.8" + yargs "^17.7.2" -"@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@puppeteer/browsers@1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-1.7.1.tgz#04f1e3aec4b87f50a7acc8f64be2149bda014f0a" - integrity sha512-nIb8SOBgDEMFY2iS2MdnUZOg2ikcYchRrBoF+wtdjieRFKR2uGRipHY/oFLo+2N6anDualyClPzGywTHRGrLfw== - dependencies: - debug "4.3.4" - extract-zip "2.0.1" - progress "2.0.3" - proxy-agent "6.3.1" - tar-fs "3.0.4" - unbzip2-stream "1.4.3" - yargs "17.7.1" - -"@socket.io/base64-arraybuffer@~1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#568d9beae00b0d835f4f8c53fd55714986492e61" - integrity sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ== +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== "@tootallnate/quickjs-emscripten@^0.23.0": version "0.23.0" - resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" + resolved "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz" integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== "@types/body-parser@*": version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== dependencies: "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== +"@types/bonjour@^3.5.13": + version "3.5.13" + resolved "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" -"@types/component-emitter@^1.2.10": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.11.tgz#50d47d42b347253817a39709fef03ce66a108506" - integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ== - -"@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== +"@types/connect-history-api-fallback@^1.5.4": + version "1.5.4" + resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" -"@types/cookie@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== - "@types/cors@^2.8.12": version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/eslint-scope@^3.7.3": - version "3.7.3" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" - integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": version "8.4.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz" integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" - integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== +"@types/estree@*", "@types/estree@^1.0.6": + version "1.0.8" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" - integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.33": + version "4.19.6" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz" + integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" + "@types/send" "*" -"@types/express@*", "@types/express@^4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== +"@types/express@*", "@types/express@^4.17.21": + version "4.17.23" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz" + integrity sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" + "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" "@types/serve-static" "*" "@types/http-errors@*": version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.2.tgz#a86e00bbde8950364f8e7846687259ffcd96e8c2" + resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz" integrity sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg== "@types/http-proxy@^1.17.8": version "1.17.8" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55" + resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz" integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA== dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/mime@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.2.tgz#c1ae807f13d308ee7511a5b81c74f327028e66e8" - integrity sha512-Wj+fqpTLtTbG7c0tH47dkahefpLKEbB+xAZuLq7b4/IDHPl/n6VoXcyUQ2bypFlbSwvCr0y+bD4euTTqTJsPxQ== +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/node@*", "@types/node@>=10.0.0", "@types/node@^20.7.0": - version "20.7.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.7.0.tgz#c03de4572f114a940bc2ca909a33ddb2b925e470" - integrity sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg== +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@>=10.0.0", "@types/node@^24.0.4": + version "24.0.4" + resolved "https://registry.npmjs.org/@types/node/-/node-24.0.4.tgz" + integrity sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA== + dependencies: + undici-types "~7.8.0" "@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + version "15.7.15" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" + integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== "@types/qs@*": version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/range-parser@*": version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/react-dom@^18.2.8": - version "18.2.8" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.8.tgz#338f1b0a646c9f10e0a97208c1d26b9f473dffd6" - integrity sha512-bAIvO5lN/U8sPGvs1Xm61rlRHHaq5rp5N3kp9C+NJ/Q41P8iqjkXSu0+/qu8POsjH9pNWb0OYabFez7taP7omw== - dependencies: - "@types/react" "*" + version "18.3.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.7.tgz#b89ddf2cd83b4feafcc4e2ea41afdfb95a0d194f" + integrity sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ== -"@types/react@*", "@types/react@^18.2.23": - version "18.2.23" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.23.tgz#60ad6cf4895e93bed858db0e03bcc4ff97d0410e" - integrity sha512-qHLW6n1q2+7KyBEYnrZpcsAmU/iiCh9WGCKgXvMxx89+TYdJWRjZohVIo9XTcoLhfX3+/hP0Pbulu3bCZQ9PSA== +"@types/react@^18.2.23": + version "18.3.23" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.23.tgz#86ae6f6b95a48c418fecdaccc8069e0fbb63696a" + integrity sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" -"@types/retry@^0.12.0": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" - integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/send@*": + version "0.17.5" + resolved "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz" + integrity sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w== + dependencies: + "@types/mime" "^1" + "@types/node" "*" -"@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== +"@types/serve-index@^1.9.4": + version "1.9.4" + resolved "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.3" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.3.tgz#2cfacfd1fd4520bbc3e292cca432d5e8e2e3ee61" - integrity sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg== +"@types/serve-static@*", "@types/serve-static@^1.15.5": + version "1.15.8" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz" + integrity sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg== dependencies: "@types/http-errors" "*" - "@types/mime" "*" "@types/node" "*" + "@types/send" "*" -"@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== +"@types/sockjs@^0.3.36": + version "0.3.36" + resolved "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" -"@types/ws@^8.5.5": - version "8.5.6" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.6.tgz#e9ad51f0ab79b9110c50916c9fcbddc36d373065" - integrity sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg== +"@types/ws@^8.5.10": + version "8.18.1" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== dependencies: "@types/node" "*" "@types/yauzl@^2.9.1": version "2.10.0" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz" integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== dependencies: "@types/node" "*" -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== - dependencies: - "@webassemblyjs/ast" "1.11.6" +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== +"@webpack-cli/configtest@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz" + integrity sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA== -"@webpack-cli/info@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== +"@webpack-cli/info@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz" + integrity sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ== -"@webpack-cli/serve@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== +"@webpack-cli/serve@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz" + integrity sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg== "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== - acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +acorn@^8.14.0, acorn@^8.15.0: + version "8.15.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== - dependencies: - debug "^4.3.4" +agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.3" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz" + integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== ajv-formats@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: ajv "^8.0.0" -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.0.0: +ajv-keywords@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1606,53 +1485,46 @@ ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.8.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== +ajv@^8.0.0, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.2.2" ansi-html-community@^0.0.8: version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" anymatch@~3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" @@ -1660,87 +1532,97 @@ anymatch@~3.1.2: argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bound "^1.0.3" + is-array-buffer "^3.0.5" array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-includes@^3.1.4, array-includes@^3.1.6: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== +array-includes@^3.1.4, array-includes@^3.1.8: + version "3.1.9" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz" + integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.24.0" + es-object-atoms "^1.1.1" + get-intrinsic "^1.3.0" + is-string "^1.1.1" + math-intrinsics "^1.1.0" + +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" -array.prototype.flatmap@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== +array.prototype.flatmap@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" -array.prototype.tosorted@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" - integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + is-array-buffer "^3.0.4" asn1@~0.2.3: version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + resolved "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz" integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== dependencies: call-bind "^1.0.2" @@ -1751,224 +1633,268 @@ assert@^2.1.0: ast-types@^0.13.4: version "0.13.4" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== dependencies: tslib "^2.0.1" -asynciterator.prototype@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" - integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== - dependencies: - has-symbols "^1.0.3" - asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== b4a@^1.6.4: version "1.6.4" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" + resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz" integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== -babel-loader@^9.1.3: - version "9.1.3" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" - integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== +babel-loader@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz" + integrity sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA== dependencies: - find-cache-dir "^4.0.0" - schema-utils "^4.0.0" + find-up "^5.0.0" -babel-plugin-polyfill-corejs2@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" - integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.13" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz" + integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.2" + "@babel/helper-define-polyfill-provider" "^0.6.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.3: - version "0.8.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz#1fac2b1dcef6274e72b3c72977ed8325cb330591" - integrity sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg== +babel-plugin-polyfill-corejs3@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz" + integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" - core-js-compat "^3.32.2" + "@babel/helper-define-polyfill-provider" "^0.6.3" + core-js-compat "^3.40.0" -babel-plugin-polyfill-regenerator@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" - integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.4" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz" + integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" + "@babel/helper-define-polyfill-provider" "^0.6.4" babel-plugin-transform-inline-environment-variables@^0.4.4: version "0.4.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.4.tgz#974245008b3cbbd646bd81707af147aea3acca43" + resolved "https://registry.npmjs.org/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.4.tgz" integrity sha512-bJILBtn5a11SmtR2j/3mBOjX4K3weC6cq+NNZ7hG22wCAqpc3qtj/iN7dSe9HDiS46lgp1nHsQgeYrea/RUe+g== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bare-events@^2.2.0, bare-events@^2.5.4: + version "2.5.4" + resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz" + integrity sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA== + +bare-fs@^4.0.1: + version "4.1.5" + resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.5.tgz" + integrity sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA== + dependencies: + bare-events "^2.5.4" + bare-path "^3.0.0" + bare-stream "^2.6.4" + +bare-os@^3.0.1: + version "3.6.1" + resolved "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz" + integrity sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g== + +bare-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz" + integrity sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw== + dependencies: + bare-os "^3.0.1" + +bare-stream@^2.6.4: + version "2.6.5" + resolved "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz" + integrity sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA== + dependencies: + streamx "^2.21.0" base64id@2.0.0, base64id@~2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== basic-ftp@^5.0.2: version "5.0.3" - resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228" + resolved "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz" integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== batch@0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -body-parser@1.20.0, body-parser@^1.19.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== +body-parser@1.20.3, body-parser@^1.19.0: + version "1.20.3" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== dependencies: bytes "3.1.2" - content-type "~1.0.4" + content-type "~1.0.5" debug "2.6.9" depd "2.0.0" destroy "1.2.0" http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" - raw-body "2.5.1" + qs "6.13.0" + raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" -bonjour-service@^1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.12.tgz#28fbd4683f5f2e36feedb833e24ba661cac960c3" - integrity sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw== +bonjour-service@^1.2.1: + version "1.3.0" + resolved "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" fast-deep-equal "^3.1.3" - multicast-dns "^7.2.4" + multicast-dns "^7.2.5" brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +brace-expansion@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: - fill-range "^7.0.1" + balanced-match "^1.0.0" -browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9: - version "4.22.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.0.tgz#6adc8116589ccea8a99d0df79c5de2436199abdb" - integrity sha512-v+Jcv64L2LbfTC6OnRcaxtqJNJuQAVhZKSJfR/6hn7lhnChUXl4amwVviqN1k411BB+3rRoKMitELRn1CojeRA== +braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - caniuse-lite "^1.0.30001539" - electron-to-chromium "^1.4.530" - node-releases "^2.0.13" - update-browserslist-db "^1.0.13" + fill-range "^7.1.1" + +browserslist@^4.24.0, browserslist@^4.25.0: + version "4.25.1" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz" + integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== + dependencies: + caniuse-lite "^1.0.30001726" + electron-to-chromium "^1.5.173" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.2.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" + run-applescript "^7.0.0" bytes@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= bytes@3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2: +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.7, call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001539: - version "1.0.30001540" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001540.tgz#a316ca4f2ae673ab02ff0ec533334016d56ff658" - integrity sha512-9JL38jscuTJBTcuETxm8QLsFr/F6v0CYYTEU6r5+qSM98P2Q0Hmu0eG1dTG5GBUmywU3UlcVOUSIJYY47rdFSw== +caniuse-lite@^1.0.30001726: + version "1.0.30001726" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz" + integrity sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw== caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chalk@^0.5.1: version "0.5.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + resolved "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz" integrity sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= dependencies: ansi-styles "^1.1.0" @@ -1977,27 +1903,18 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^4.0.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@^3.4.0, chokidar@^3.5.1, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@^3.5.1, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -2011,20 +1928,20 @@ chokidar@^3.4.0, chokidar@^3.5.1, chokidar@^3.5.3: chrome-trace-event@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -chromium-bidi@0.4.28: - version "0.4.28" - resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.4.28.tgz#05befef4f3f19003198237245780d1c60e6f4dbc" - integrity sha512-2HZ74QlAApJrEwcGlU/sUu0s4VS+FI3CJ09Toc9aE9VemMyhHZXeaROQgJKNRaYMUTUx6qIv1cLBs3F+vfgjSw== +chromium-bidi@5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-5.1.0.tgz" + integrity sha512-9MSRhWRVoRPDG0TgzkHrshFSJJNZzfY5UFqUMuksg7zL1yoZIZ3jLB0YAgHclbiAxPI86pBnwDX1tbzoiV8aFw== dependencies: - mitt "3.0.1" - urlpattern-polyfill "9.0.0" + mitt "^3.0.1" + zod "^3.24.1" cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -2033,7 +1950,7 @@ cliui@^7.0.2: cliui@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -2042,7 +1959,7 @@ cliui@^8.0.1: clone-deep@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: is-plain-object "^2.0.4" @@ -2051,80 +1968,58 @@ clone-deep@^4.0.1: clsx@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colorette@^2.0.10, colorette@^2.0.14: version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -commander@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== commander@^2.20.0, commander@^2.3.0: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - -component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +commander@^6.2.0: + version "6.2.1" + resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== compressible@~2.0.16: version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" compression@^1.7.4: version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" @@ -2137,12 +2032,12 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.4.7, concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -2152,12 +2047,12 @@ concat-stream@^1.4.7, concat-stream@^1.6.2: connect-history-api-fallback@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== connect@^3.7.0: version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== dependencies: debug "2.6.9" @@ -2167,91 +2062,84 @@ connect@^3.7.0: content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== -cookie@~0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@~0.7.2: + version "0.7.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== -core-js-compat@^3.31.0, core-js-compat@^3.32.2: - version "3.32.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c" - integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ== +core-js-compat@^3.40.0: + version "3.43.0" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz" + integrity sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA== dependencies: - browserslist "^4.21.10" + browserslist "^4.25.0" core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cors@~2.8.5: version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: object-assign "^4" vary "^1" -cosmiconfig@8.3.6: - version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" - integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== dependencies: + env-paths "^2.2.1" import-fresh "^3.3.0" js-yaml "^4.1.0" parse-json "^5.2.0" - path-type "^4.0.0" - -cross-fetch@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" - integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== - dependencies: - node-fetch "^2.6.12" cross-spawn@^5.0.1: version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== +cross-spawn@^7.0.3, cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -2259,74 +2147,114 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: csstype@^3.0.2: version "3.0.11" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz" integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== custom-event@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz" integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" data-uri-to-buffer@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz#db89a9e279c2ffe74f50637a59a32fb23b3e4d7c" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz" integrity sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg== +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-data-view "^1.0.1" + date-format@^4.0.9: version "4.0.9" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.9.tgz#4788015ac56dedebe83b03bc361f00c1ddcf1923" + resolved "https://registry.npmjs.org/date-format/-/date-format-4.0.9.tgz" integrity sha512-+8J+BOUpSrlKLQLeF8xJJVTxS8QfRSuJgwxSVvslzgO3E6khbI0F5mMEPf5mTYhCCm4h99knYP6H3W9n3BQFrg== debug@2.6.9, debug@^2.6.9: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.1: + version "4.4.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== + dependencies: + ms "^2.1.3" + +debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: - ms "2.1.2" + ms "^2.1.3" deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== +default-browser-id@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz" + integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== + +default-browser@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz" + integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== dependencies: - execa "^5.0.0" + bundle-name "^4.1.0" + default-browser-id "^5.0.0" -define-data-property@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" - integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: - get-intrinsic "^1.2.1" + es-define-property "^1.0.0" + es-errors "^1.3.0" gopd "^1.0.1" - has-property-descriptors "^1.0.0" -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -2335,7 +2263,7 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, de degenerator@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" + resolved "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz" integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== dependencies: ast-types "^0.13.4" @@ -2344,68 +2272,56 @@ degenerator@^5.0.0: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= depd@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== depd@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= destroy@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-node@^2.0.4: version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -devtools-protocol@0.0.1179426: - version "0.0.1179426" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1179426.tgz#c4c3ee671efae868395569123002facbbbffa267" - integrity sha512-KKC7IGwdOr7u9kTGgjUvGTov/z1s2H7oHi3zKCdR9eSDyCPia5CBi4aRhtp7d8uR7l0GS5UTDw3TjKGu5CqINg== +devtools-protocol@0.0.1452169: + version "0.0.1452169" + resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1452169.tgz" + integrity sha512-FOFDVMGrAUNp0dDKsAU1TorWJUx2JOU1k9xdgBKKJF3IBh/Uhl2yswG5r3TEAOrCiGY2QRp1e6LVDQrCsTKO4g== di@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + resolved "https://registry.npmjs.org/di/-/di-0.0.1.tgz" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - dns-packet@^5.2.2: version "5.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" + resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz" integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dom-serialize@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz" integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= dependencies: custom-event "~1.0.0" @@ -2413,9 +2329,18 @@ dom-serialize@^2.2.1: extend "^3.0.0" void-elements "^2.0.0" +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" @@ -2423,202 +2348,244 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.4.530: - version "1.4.531" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.531.tgz#22966d894c4680726c17cf2908ee82ff5d26ac25" - integrity sha512-H6gi5E41Rn3/mhKlPaT1aIMg/71hTAqn0gYEllSuw9igNWtvQwu185jiCZoZD29n7Zukgh7GVZ3zGf0XvkhqjQ== +electron-to-chromium@^1.5.173: + version "1.5.174" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.174.tgz" + integrity sha512-HE43yYdUUiJVjewV2A9EP8o89Kb4AqMKplMQP2IxEPUws1Etu/ZkdsgUDabUZ/WmbP4ZbvJDOcunvbBUPPIfmw== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" -engine.io-parser@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.3.tgz#ca1f0d7b11e290b4bfda251803baea765ed89c09" - integrity sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg== - dependencies: - "@socket.io/base64-arraybuffer" "~1.0.2" +engine.io-parser@~5.2.1: + version "5.2.3" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== -engine.io@~6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" - integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== +engine.io@~6.6.0: + version "6.6.4" + resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz" + integrity sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g== dependencies: - "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "2.0.0" - cookie "~0.4.1" + cookie "~0.7.2" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.2.3" + engine.io-parser "~5.2.1" + ws "~8.17.1" -enhanced-resolve@^5.15.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== +enhanced-resolve@^5.17.1: + version "5.18.2" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz" + integrity sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" ent@~2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= -envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== +env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@^7.14.0: + version "7.14.0" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz" + integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: - version "1.22.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" - integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.1" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" +es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9, es-abstract@^1.24.0: + version "1.24.0" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz" + integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.3.0" + get-proto "^1.0.1" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.12.3" + is-data-view "^1.0.2" + is-negative-zero "^2.0.3" + is-regex "^1.2.1" + is-set "^2.0.3" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.1" + math-intrinsics "^1.1.0" + object-inspect "^1.13.4" object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.11" - -es-iterator-helpers@^1.0.12: - version "1.0.15" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" - integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.4" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + stop-iteration-iterator "^1.1.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.19" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-iterator-helpers@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz" + integrity sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w== dependencies: - asynciterator.prototype "^1.0.0" - call-bind "^1.0.2" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - es-abstract "^1.22.1" - es-set-tostringtag "^2.0.1" - function-bind "^1.1.1" - get-intrinsic "^1.2.1" - globalthis "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - iterator.prototype "^1.1.2" - safe-array-concat "^1.0.1" + es-abstract "^1.23.6" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.6" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + iterator.prototype "^1.1.4" + safe-array-concat "^1.1.3" es-module-lexer@^1.2.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz" integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" + es-errors "^1.3.0" -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== +es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: - has "^1.0.3" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== +es-shim-unscopables@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== + dependencies: + hasown "^2.0.2" + +es-to-primitive@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" es6-promise@^4.0.3: version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.0: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" @@ -2627,201 +2594,191 @@ escodegen@^2.1.0: optionalDependencies: source-map "~0.6.1" -eslint-plugin-react@^7.33.2: - version "7.33.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" - integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== +eslint-plugin-react@^7.37.5: + version "7.37.5" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz" + integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA== dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.3" + array.prototype.tosorted "^1.1.4" doctrine "^2.1.0" - es-iterator-helpers "^1.0.12" + es-iterator-helpers "^1.2.1" estraverse "^5.3.0" + hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" + object.entries "^1.1.9" + object.fromentries "^2.0.8" + object.values "^1.2.1" prop-types "^15.8.1" - resolve "^2.0.0-next.4" + resolve "^2.0.0-next.5" semver "^6.3.1" - string.prototype.matchall "^4.0.8" + string.prototype.matchall "^4.0.12" + string.prototype.repeat "^1.0.0" eslint-scope@5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.4.0: + version "8.4.0" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz" + integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" eslint-visitor-keys@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.50.0: - version "8.50.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" - integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== +eslint-visitor-keys@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz" + integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== + +eslint@^9.29.0: + version "9.29.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz" + integrity sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.50.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint-community/regexpp" "^4.12.1" + "@eslint/config-array" "^0.20.1" + "@eslint/config-helpers" "^0.2.1" + "@eslint/core" "^0.14.0" + "@eslint/eslintrc" "^3.3.1" + "@eslint/js" "9.29.0" + "@eslint/plugin-kit" "^0.3.1" + "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" + "@humanwhocodes/retry" "^0.4.2" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.2" + cross-spawn "^7.0.6" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.4.0" + eslint-visitor-keys "^4.2.1" + espree "^10.4.0" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^10.0.1, espree@^10.4.0: + version "10.4.0" + resolved "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz" + integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== dependencies: - acorn "^8.9.0" + acorn "^8.15.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.2.1" esprima@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eventemitter3@^4.0.0: version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.2.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -express@^4.17.3: - version "4.18.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2" - integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg== +express@^4.21.2: + version "4.21.2" + resolved "https://registry.npmjs.org/express/-/express-4.21.2.tgz" + integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.0" + body-parser "1.20.3" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.7.1" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.2.0" + finalhandler "1.3.1" fresh "0.5.2" http-errors "2.0.0" - merge-descriptors "1.0.1" + merge-descriptors "1.0.3" methods "~1.1.2" on-finished "2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.7" + path-to-regexp "0.1.12" proxy-addr "~2.0.7" - qs "6.10.3" + qs "6.13.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" + send "0.19.0" + serve-static "1.16.2" setprototypeof "1.2.0" statuses "2.0.1" type-is "~1.6.18" @@ -2830,23 +2787,12 @@ express@^4.17.3: extend@^3.0.0, extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - extract-zip@^1.6.5: version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: concat-stream "^1.6.2" @@ -2854,84 +2800,93 @@ extract-zip@^1.6.5: mkdirp "^0.5.4" yauzl "^2.10.0" +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-fifo@^1.1.0, fast-fifo@^1.2.0: +fast-fifo@^1.2.0, fast-fifo@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-uri@^3.0.1: + version "3.0.6" + resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz" + integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== + fastest-levenshtein@^1.0.12: version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - faye-websocket@^0.11.3: version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" file-size@0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" + resolved "https://registry.npmjs.org/file-size/-/file-size-0.0.5.tgz" integrity sha1-BX1Dw6Ptc12j+Q1gUqs4Dx5tXjs= -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" finalhandler@1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -2942,30 +2897,22 @@ finalhandler@1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== dependencies: debug "2.6.9" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" on-finished "2.4.1" parseurl "~1.3.3" statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" - integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== - dependencies: - common-path-prefix "^3.0.0" - pkg-dir "^7.0.0" - find-up@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -2973,58 +2920,55 @@ find-up@^4.0.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" + flatted "^3.2.9" + keyv "^4.5.4" -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.1.0, flatted@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +flatted@^3.2.5, flatted@^3.2.9: + version "3.3.3" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== flow-bin@^0.217.0: version "0.217.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.0.tgz#c255b4d8d815520d396416c2f712ab849d61f467" + resolved "https://registry.npmjs.org/flow-bin/-/flow-bin-0.217.0.tgz" integrity sha512-AbbDE6QUpR+jpY9ejNROAk0P5D/2PxJzjU4D5vfmMwtS+QjjPjzfZGuatEJIn2k4PTZ2agbncaCtyHGO0AvG7A== follow-redirects@^1.0.0: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== + version "1.15.9" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== +for-each@^0.3.3, for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== dependencies: - is-callable "^1.1.3" + is-callable "^1.2.7" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -3033,17 +2977,17 @@ form-data@~2.3.2: forwarded@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= fs-extra@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz" integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= dependencies: graceful-fs "^4.1.2" @@ -3052,7 +2996,7 @@ fs-extra@^1.0.0: fs-extra@^10.1.0: version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" @@ -3061,96 +3005,103 @@ fs-extra@^10.1.0: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" -fs-monkey@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== - fs-readdir-recursive@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@~2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.1, function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.0, get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bound "^1.0.3" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" get-uri@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.1.tgz#cff2ba8d456c3513a04b70c45de4dbcca5b1527c" + resolved "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz" integrity sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q== dependencies: basic-ftp "^5.0.2" @@ -3160,33 +3111,33 @@ get-uri@^6.0.1: getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-to-regexp@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob@^7.1.3, glob@^7.1.7, glob@^7.2.0: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -3198,53 +3149,50 @@ glob@^7.1.3, glob@^7.1.7, glob@^7.2.0: globals@^11.1.0: version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.22.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.22.0.tgz#0c9fcb9c48a2494fbb5edbfee644285543eba9d8" - integrity sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw== - dependencies: - type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" +globals@^16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz" + integrity sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg== -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== +globalthis@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: - get-intrinsic "^1.1.3" + define-properties "^1.2.1" + gopd "^1.0.1" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.11" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== handle-thing@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -3252,68 +3200,72 @@ har-validator@~5.1.3: has-ansi@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz" integrity sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= dependencies: ansi-regex "^0.2.0" -has-bigints@^1.0.1, has-bigints@^1.0.2: +has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-intrinsic "^1.1.1" + es-define-property "^1.0.0" -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hasha@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" + resolved "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz" integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE= dependencies: is-stream "^1.0.1" pinkie-promise "^2.0.0" +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + hpack.js@^2.1.6: version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" @@ -3321,19 +3273,14 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== - http-deceiver@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= http-errors@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -3344,7 +3291,7 @@ http-errors@2.0.0: http-errors@~1.6.2: version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" @@ -3354,21 +3301,21 @@ http-errors@~1.6.2: http-parser-js@>=0.5.1: version "0.5.6" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz" integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== -http-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" - integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== +http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: + version "7.0.2" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== dependencies: agent-base "^7.1.0" debug "^4.3.4" -http-proxy-middleware@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== +http-proxy-middleware@^2.0.9: + version "2.0.9" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz" + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" @@ -3378,7 +3325,7 @@ http-proxy-middleware@^2.0.3: http-proxy@^1.18.1: version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" @@ -3387,46 +3334,41 @@ http-proxy@^1.18.1: http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" -https-proxy-agent@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" - integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== +https-proxy-agent@^7.0.6: + version "7.0.6" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +hyperdyperid@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz" + integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - ignore@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -3434,7 +3376,7 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: import-local@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" @@ -3442,12 +3384,12 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -3455,338 +3397,367 @@ inflight@^1.0.4: inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" + es-errors "^1.3.0" + hasown "^2.0.2" + side-channel "^1.1.0" interpret@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -ip@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== +ipaddr.js@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== is-arguments@^1.0.4: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-async-function@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz" integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== dependencies: has-tostringtag "^1.0.0" -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== dependencies: - has-bigints "^1.0.1" + has-bigints "^1.0.2" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== +is-boolean-object@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.9.0: +is-core-module@^2.13.0: version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + is-typed-array "^1.1.13" + +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" -is-docker@^2.0.0, is-docker@^2.1.1: +is-docker@^2.0.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-finalizationregistry@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" - integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== +is-finalizationregistry@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-function@^1.0.10, is-generator-function@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: has-tostringtag "^1.0.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== is-nan@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + resolved "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz" integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== dependencies: call-bind "^1.0.0" define-properties "^1.1.3" -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== +is-network-error@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz" + integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== + +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-plain-obj@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" -is-set@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" is-stream@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== +is-string@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== dependencies: - has-symbols "^1.0.2" + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15, is-typed-array@^1.1.3: + version "1.1.15" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.16" is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== +is-weakref@^1.0.2, is-weakref@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== +is-weakset@^2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + isarray@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isbinaryfile@^4.0.8: version "4.0.10" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz" integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -iterator.prototype@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" - integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== +iterator.prototype@^1.1.4: + version "1.1.5" + resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz" + integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== dependencies: - define-properties "^1.2.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - reflect.getprototypeof "^1.0.4" - set-function-name "^2.0.1" + define-data-property "^1.1.4" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + get-proto "^1.0.0" + has-symbols "^1.1.0" + set-function-name "^2.0.2" jasmine-core@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-4.1.0.tgz#2377349b0e8bfd3fbdb36c9e4f09e3b1a17cf5c2" + resolved "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.1.0.tgz" integrity sha512-8E8BiffCL8sBwK1zU9cbavLe8xpJAgOduSJ6N8PJVv8VosQ/nxVTuXj2kUeHxTlZBVvh24G19ga7xdiaxlceKg== -jasmine-core@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-5.1.1.tgz#38b6ccfbe60aa2a863cf441751d9639b5a571edc" - integrity sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg== +jasmine-core@^5.8.0: + version "5.8.0" + resolved "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.8.0.tgz" + integrity sha512-Q9dqmpUAfptwyueW3+HqBOkSuYd9I/clZSSfN97wXE/Nr2ROFNCwIBEC1F6kb3QXS9Fcz0LjFYSDQT+BiwjuhA== jest-worker@^27.4.5: version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" @@ -3795,83 +3766,93 @@ jest-worker@^27.4.5: "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-schema@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^2.1.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= optionalDependencies: graceful-fs "^4.1.6" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -3880,7 +3861,7 @@ jsonfile@^6.0.1: jsprim@^1.2.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" @@ -3890,7 +3871,7 @@ jsprim@^1.2.2: "jsx-ast-utils@^2.4.1 || ^3.0.0": version "3.2.2" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz#6ab1e52c71dfc0c0707008a91729a9491fe9f76c" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz" integrity sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw== dependencies: array-includes "^3.1.4" @@ -3898,66 +3879,66 @@ jsprim@^1.2.2: karma-chrome-launcher@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" + resolved "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz" integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== dependencies: which "^1.2.1" karma-cli@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-2.0.0.tgz#481548d28661af4cc68f3d8e09708f17d2cba931" + resolved "https://registry.npmjs.org/karma-cli/-/karma-cli-2.0.0.tgz" integrity sha512-1Kb28UILg1ZsfqQmeELbPzuEb5C6GZJfVIk0qOr8LNYQuYWmAaqP16WpbpKEjhejDrDYyYOwwJXSZO6u7q5Pvw== dependencies: resolve "^1.3.3" -karma-firefox-launcher@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz#9a38cc783c579a50f3ed2a82b7386186385cfc2d" - integrity sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA== +karma-firefox-launcher@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz" + integrity sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw== dependencies: is-wsl "^2.2.0" - which "^2.0.1" + which "^3.0.0" karma-ie-launcher@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz#497986842c490190346cd89f5494ca9830c6d59c" + resolved "https://registry.npmjs.org/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz" integrity sha1-SXmGhCxJAZA0bNifVJTKmDDG1Zw= dependencies: lodash "^4.6.1" karma-jasmine@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-5.1.0.tgz#3af4558a6502fa16856a0f346ec2193d4b884b2f" + resolved "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz" integrity sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ== dependencies: jasmine-core "^4.1.0" karma-phantomjs-launcher@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2" - integrity sha1-0jyjSAG9qYY60xjju0vUBisTrNI= + resolved "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz" + integrity sha512-tf4P3plsE7wb5Pqh8GJ6RnElxfI/UM4MtVnjbSIZFpdFJlKnjRzfIx8MLCcSYJBwZ1+qSKFz4uBe3XNoq2t3KA== dependencies: lodash "^4.0.1" phantomjs-prebuilt "^2.1.7" karma-phantomjs-shim@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/karma-phantomjs-shim/-/karma-phantomjs-shim-1.5.0.tgz#e8db65883480f0dbd184cc961d39c64511742200" + resolved "https://registry.npmjs.org/karma-phantomjs-shim/-/karma-phantomjs-shim-1.5.0.tgz" integrity sha512-t0h1x7btXROaGElv36TLpuoWqTnVZ/f+GJHH/qVerjbX6AENoM5brQoB9ISO3hQ6zO1k9rDSRLrY5ZZb83ANdg== -karma-webpack@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.0.tgz#2a2c7b80163fe7ffd1010f83f5507f95ef39f840" - integrity sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA== +karma-webpack@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.1.tgz" + integrity sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ== dependencies: glob "^7.1.3" - minimatch "^3.0.4" + minimatch "^9.0.3" webpack-merge "^4.1.5" -karma@^6.4.2: - version "6.4.2" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.2.tgz#a983f874cee6f35990c4b2dcc3d274653714de8e" - integrity sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ== +karma@^6.4.4: + version "6.4.4" + resolved "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz" + integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -3978,7 +3959,7 @@ karma@^6.4.2: qjobs "^1.2.0" range-parser "^1.2.1" rimraf "^3.0.2" - socket.io "^4.4.1" + socket.io "^4.7.2" source-map "^0.6.1" tmp "^0.2.1" ua-parser-js "^0.7.30" @@ -3986,32 +3967,39 @@ karma@^6.4.2: kew@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + resolved "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz" integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s= +keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= optionalDependencies: graceful-fs "^4.1.9" -launch-editor@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" - integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== +launch-editor@^2.6.1: + version "2.10.0" + resolved "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz" + integrity sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA== dependencies: picocolors "^1.0.0" - shell-quote "^1.7.3" + shell-quote "^1.8.1" levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -4019,53 +4007,46 @@ levn@^0.4.1: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== loader-runner@^4.2.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" -locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash@^4.0.1, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.6.1: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log4js@^6.4.1: version "6.4.6" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.4.6.tgz#1878aa3f09973298ecb441345fe9dd714e355c15" + resolved "https://registry.npmjs.org/log4js/-/log4js-6.4.6.tgz" integrity sha512-1XMtRBZszmVZqPAOOWczH+Q94AI42mtNWjvjA5RduKTSWjEc56uOBbyM1CJnfN4Ym0wSd8cQ43zOojlSHgRDAw== dependencies: date-format "^4.0.9" @@ -4076,14 +4057,14 @@ log4js@^6.4.1: loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lru-cache@^4.0.1: version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" @@ -4091,217 +4072,196 @@ lru-cache@^4.0.1: lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - lru-cache@^7.14.1: version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== make-dir@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" semver "^5.6.0" +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memfs@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" - integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== +memfs@^4.6.0: + version "4.17.2" + resolved "https://registry.npmjs.org/memfs/-/memfs-4.17.2.tgz" + integrity sha512-NgYhCOWgovOXSzvYgUW0LQ7Qy72rWQMGGFJDoWg4G30RHd3z77VbYdtJ4fembJXBy8pMIUA31XNAupobOQlwdg== dependencies: - fs-monkey "1.0.3" + "@jsonjoy.com/json-pack" "^1.0.3" + "@jsonjoy.com/util" "^1.3.0" + tree-dump "^1.0.1" + tslib "^2.0.0" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== methods@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^4.0.2: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.8" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime@1.6.0, mime@^1.2.11: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.5.2: version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - minimalistic-assert@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^9.0.3: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -mitt@3.0.1: +mitt@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - mkdirp@^0.5.4, mkdirp@^0.5.5: version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns@^7.2.4: - version "7.2.4" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.4.tgz#cf0b115c31e922aeb20b64e6556cbeb34cf0dd19" - integrity sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw== +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== dependencies: dns-packet "^5.2.2" thunky "^1.0.2" natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= negotiator@0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== netmask@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -node-fetch@^2.6.12: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - node-forge@^1: version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.3, object-inspect@^1.13.4: + version "1.13.4" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-is@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== dependencies: call-bind "^1.0.2" @@ -4309,104 +4269,95 @@ object-is@^1.1.5: object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.2, object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== +object.assign@^4.1.2, object.assign@^4.1.4, object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" object-keys "^1.1.1" -object.entries@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.fromentries@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== +object.entries@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz" + integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-object-atoms "^1.1.1" -object.hasown@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" - integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" -object.values@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== +object.values@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1: +on-finished@2.4.1, on-finished@^2.4.1: version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^8.0.9: - version "8.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" - integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== +open@^10.0.3: + version "10.1.2" + resolved "https://registry.npmjs.org/open/-/open-10.1.2.tgz" + integrity sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw== dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^3.1.0" optionator@^0.9.3: version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -4418,97 +4369,92 @@ optionator@^0.9.3: os-shim@^0.1.2: version "0.1.3" - resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + resolved "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz" integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - -p-retry@^4.5.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" - integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== +p-retry@^6.2.0: + version "6.2.1" + resolved "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz" + integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== dependencies: - "@types/retry" "^0.12.0" + "@types/retry" "0.12.2" + is-network-error "^1.0.0" retry "^0.13.1" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pac-proxy-agent@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz#6b9ddc002ec3ff0ba5fdf4a8a21d363bcc612d75" - integrity sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A== +pac-proxy-agent@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz" + integrity sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA== dependencies: "@tootallnate/quickjs-emscripten" "^0.23.0" - agent-base "^7.0.2" + agent-base "^7.1.2" debug "^4.3.4" get-uri "^6.0.1" http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.2" - pac-resolver "^7.0.0" - socks-proxy-agent "^8.0.2" + https-proxy-agent "^7.0.6" + pac-resolver "^7.0.1" + socks-proxy-agent "^8.0.5" -pac-resolver@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.0.tgz#79376f1ca26baf245b96b34c339d79bff25e900c" - integrity sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg== +pac-resolver@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz" + integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg== dependencies: degenerator "^5.0.0" - ip "^1.1.8" netmask "^2.0.2" parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -4518,58 +4464,48 @@ parse-json@^5.2.0: parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +path-to-regexp@0.1.12: + version "0.1.12" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== pend@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: version "2.1.16" - resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef" - integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8= + resolved "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz" + integrity sha512-PIiRzBhW85xco2fuj41FmsyuYHKjKuXWmhjy3A/Y+CMpN/63TV+s9uzfVhsUwFe0G77xWtHBG8xmXf5BqEUEuQ== dependencies: es6-promise "^4.0.3" extract-zip "^1.6.5" @@ -4581,51 +4517,49 @@ phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@^2.1.7: request-progress "^2.0.1" which "^1.2.10" -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -pkg-dir@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" - integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== - dependencies: - find-up "^6.3.0" +possible-typed-array-names@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== pre-commit@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" - integrity sha1-287g7p3nI15X95xW186UZBpp7sY= + resolved "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz" + integrity sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA== dependencies: cross-spawn "^5.0.1" spawn-sync "^1.0.15" @@ -4633,32 +4567,32 @@ pre-commit@^1.2.2: prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - progress@^1.1.8: version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + resolved "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -4667,44 +4601,44 @@ prop-types@^15.6.2, prop-types@^15.8.1: proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-agent@6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.3.1.tgz#40e7b230552cf44fd23ffaf7c59024b692612687" - integrity sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ== +proxy-agent@^6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz" + integrity sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "^4.3.4" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.2" + http-proxy-agent "^7.0.1" + https-proxy-agent "^7.0.6" lru-cache "^7.14.1" - pac-proxy-agent "^7.0.1" + pac-proxy-agent "^7.1.0" proxy-from-env "^1.1.0" - socks-proxy-agent "^8.0.2" + socks-proxy-agent "^8.0.5" proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -4712,73 +4646,66 @@ pump@^3.0.0: punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer-core@21.3.5: - version "21.3.5" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-21.3.5.tgz#f9f592590ce2c3633725ff4a6f924bc66c420640" - integrity sha512-C/yVgvob/HbUVTedhnURDruFkJYHEqJWlb6YltJGj/T7yzWdG4ouQ0JER8aX5g2RS4DMQ0xMNuhUVYMqC2QfnQ== - dependencies: - "@puppeteer/browsers" "1.7.1" - chromium-bidi "0.4.28" - cross-fetch "4.0.0" - debug "4.3.4" - devtools-protocol "0.0.1179426" - ws "8.14.2" - -puppeteer@^21.3.5: - version "21.3.5" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-21.3.5.tgz#70e6900941104718ff765484d030bb472c4572a3" - integrity sha512-Lff7dgN7D1AHnPBgceZiZpcXVpKOcnSCtBy+TZlwqYBumGapOky3/rUPScd6I6poh5XpPNzya6gbipBasAs7xA== - dependencies: - "@puppeteer/browsers" "1.7.1" - cosmiconfig "8.3.6" - puppeteer-core "21.3.5" +puppeteer-core@24.10.2: + version "24.10.2" + resolved "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.10.2.tgz" + integrity sha512-CnzhOgrZj8DvkDqI+Yx+9or33i3Y9uUYbKyYpP4C13jWwXx/keQ38RMTMmxuLCWQlxjZrOH0Foq7P2fGP7adDQ== + dependencies: + "@puppeteer/browsers" "2.10.5" + chromium-bidi "5.1.0" + debug "^4.4.1" + devtools-protocol "0.0.1452169" + typed-query-selector "^2.12.0" + ws "^8.18.2" + +puppeteer@^24.10.2: + version "24.10.2" + resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-24.10.2.tgz" + integrity sha512-+k26rCz6akFZntx0hqUoFjCojgOLIxZs6p2k53LmEicwsT8F/FMBKfRfiBw1sitjiCvlR/15K7lBqfjXa251FA== + dependencies: + "@puppeteer/browsers" "2.10.5" + chromium-bidi "5.1.0" + cosmiconfig "^9.0.0" + devtools-protocol "0.0.1452169" + puppeteer-core "24.10.2" + typed-query-selector "^2.12.0" qjobs@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== +qs@6.13.0: + version "6.13.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" qs@~6.5.2: version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -queue-tick@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" - integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== - randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" http-errors "2.0.0" @@ -4787,7 +4714,7 @@ raw-body@2.5.1: react-dom@^16.13.1: version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz" integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" @@ -4795,19 +4722,19 @@ react-dom@^16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-frame-component@^5.2.6: - version "5.2.6" - resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-5.2.6.tgz#0d9991d251ff1f7177479d8f370deea06b824b79" - integrity sha512-CwkEM5VSt6nFwZ1Op8hi3JB5rPseZlmnp5CGiismVTauE6S4Jsc4TNMlT0O7Cts4WgIC3ZBAQ2p1Mm9XgLbj+w== +react-frame-component@^5.2.7: + version "5.2.7" + resolved "https://registry.npmjs.org/react-frame-component/-/react-frame-component-5.2.7.tgz" + integrity sha512-ROjHtSLoSVYUBfTieazj/nL8jIX9rZFmHC0yXEU+dx6Y82OcBEGgU9o7VyHMrBFUN9FuQ849MtIPNNLsb4krbg== react-is@^16.13.1, react-is@^16.8.6: version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-test-renderer@^16.13.1: version "16.14.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" + resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz" integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== dependencies: object-assign "^4.1.1" @@ -4817,7 +4744,7 @@ react-test-renderer@^16.13.1: react@^16.13.1: version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + resolved "https://registry.npmjs.org/react/-/react-16.14.0.tgz" integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" @@ -4826,7 +4753,7 @@ react@^16.13.1: readable-stream@^2.0.1, readable-stream@^2.2.2: version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -4839,7 +4766,7 @@ readable-stream@^2.0.1, readable-stream@^2.2.2: readable-stream@^3.0.6: version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -4848,92 +4775,90 @@ readable-stream@^3.0.6: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" rechoir@^0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz" integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: resolve "^1.20.0" -reflect.getprototypeof@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" - integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - globalthis "^1.0.3" - which-builtin-type "^1.1.3" - -regenerate-unicode-properties@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" - integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.7" + get-proto "^1.0.1" + which-builtin-type "^1.2.1" + +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - dependencies: - "@babel/runtime" "^7.8.4" - -regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== +regexp.prototype.flags@^1.5.3, regexp.prototype.flags@^1.5.4: + version "1.5.4" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" + set-function-name "^2.0.2" -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== dependencies: - "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.12.0" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== dependencies: - jsesc "~0.5.0" + jsesc "~3.0.2" request-progress@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" + resolved "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz" integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg= dependencies: throttleit "^1.0.0" request@^2.81.0: version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -4959,177 +4884,169 @@ request@^2.81.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resolve-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: resolve-from "^5.0.0" resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.3: version "1.22.6" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz" integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" retry@^0.13.1: version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - rfdc@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" +run-applescript@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz" + integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== +safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" isarray "^2.0.5" safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0: +safe-push-apply@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + resolved "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" + es-errors "^1.3.0" + isarray "^2.0.5" + +safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== scheduler@^0.19.1: version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz" integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^3.1.1, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" - integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== +schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== dependencies: "@types/json-schema" "^7.0.9" - ajv "^8.8.0" + ajv "^8.9.0" ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" + ajv-keywords "^5.1.0" select-hose@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== +selfsigned@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: + "@types/node-forge" "^1.3.0" node-forge "^1" semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.3.1: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" +semver@^7.7.2: + version "7.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== +send@0.19.0: + version "0.19.0" + resolved "https://registry.npmjs.org/send/-/send-0.19.0.tgz" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== dependencies: debug "2.6.9" depd "2.0.0" @@ -5145,16 +5062,16 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" @@ -5165,150 +5082,201 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== dependencies: - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.18.0" + send "0.19.0" -set-function-name@^2.0.0, set-function-name@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: - define-data-property "^1.0.1" + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" + +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shallow-clone@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: kind-of "^6.0.2" shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== +shell-quote@^1.8.1: + version "1.8.3" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" -signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +side-channel@^1.0.6, side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" slash@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socket.io-adapter@~2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" - integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== +socket.io-adapter@~2.5.2: + version "2.5.5" + resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz" + integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg== + dependencies: + debug "~4.3.4" + ws "~8.17.1" -socket.io-parser@~4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" - integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: - "@types/component-emitter" "^1.2.10" - component-emitter "~1.3.0" + "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -socket.io@^4.4.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.0.tgz#78ae2e84784c29267086a416620c18ef95b37186" - integrity sha512-slTYqU2jCgMjXwresG8grhUi/cC6GjzmcfqArzaH3BN/9I/42eZk9yamNvZJdBfTubkjEdKAKs12NEztId+bUA== +socket.io@^4.7.2: + version "4.8.1" + resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz" + integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== dependencies: accepts "~1.3.4" base64id "~2.0.0" + cors "~2.8.5" debug "~4.3.2" - engine.io "~6.2.0" - socket.io-adapter "~2.4.0" - socket.io-parser "~4.0.4" + engine.io "~6.6.0" + socket.io-adapter "~2.5.2" + socket.io-parser "~4.2.4" sockjs@^0.3.24: version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== dependencies: faye-websocket "^0.11.3" uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" - integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== +socks-proxy-agent@^8.0.5: + version "8.0.5" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz" + integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "^4.3.4" - socks "^2.7.1" + socks "^2.8.3" -socks@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== +socks@^2.8.3: + version "2.8.5" + resolved "https://registry.npmjs.org/socks/-/socks-2.8.5.tgz" + integrity sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww== dependencies: - ip "^2.0.0" + ip-address "^9.0.5" smart-buffer "^4.2.0" source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -5316,12 +5284,12 @@ source-map-support@~0.5.20: source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spawn-sync@^1.0.15: version "1.0.15" - resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + resolved "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz" integrity sha1-sAeZVX63+wyDdsKdROih6mfldHY= dependencies: concat-stream "^1.4.7" @@ -5329,7 +5297,7 @@ spawn-sync@^1.0.15: spdy-transport@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: debug "^4.1.0" @@ -5341,7 +5309,7 @@ spdy-transport@^3.0.0: spdy@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" @@ -5350,9 +5318,14 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + sshpk@^1.7.0: version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" @@ -5367,7 +5340,7 @@ sshpk@^1.7.0: static-server@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/static-server/-/static-server-3.0.0.tgz#50c5adb318bcdf6547f4b36c272e8c53df829030" + resolved "https://registry.npmjs.org/static-server/-/static-server-3.0.0.tgz" integrity sha512-eWUwBKKfugQcY80uMSXnu2enueHGZQAXylJeTdVvny5DtMfcvrQL+MjAf/w2BNc0pkI8NoGHINNuDCbDE1eg5Q== dependencies: chalk "^0.5.1" @@ -5377,369 +5350,386 @@ static-server@^3.0.0: statuses@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== "statuses@>= 1.4.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stop-iteration-iterator@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz" + integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== + dependencies: + es-errors "^1.3.0" + internal-slot "^1.1.0" + streamroller@^3.0.8: version "3.0.8" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.0.8.tgz#84b190e4080ee311ca1ebe0444e30ac8eedd028d" + resolved "https://registry.npmjs.org/streamroller/-/streamroller-3.0.8.tgz" integrity sha512-VI+ni3czbFZrd1MrlybxykWZ8sMDCMtTU7YJyhgb9M5X6d1DDxLdJr+gSnmRpXPMnIWxWKMaAE8K0WumBp3lDg== dependencies: date-format "^4.0.9" debug "^4.3.4" fs-extra "^10.1.0" -streamx@^2.15.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.1.tgz#396ad286d8bc3eeef8f5cea3f029e81237c024c6" - integrity sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA== +streamx@^2.15.0, streamx@^2.21.0: + version "2.22.1" + resolved "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz" + integrity sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA== dependencies: - fast-fifo "^1.1.0" - queue-tick "^1.0.1" + fast-fifo "^1.3.2" + text-decoder "^1.1.0" + optionalDependencies: + bare-events "^2.2.0" string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.matchall@^4.0.8: - version "4.0.10" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" - integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== +string.prototype.matchall@^4.0.12: + version "4.0.12" + resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz" + integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - regexp.prototype.flags "^1.5.0" - set-function-name "^2.0.0" - side-channel "^1.0.4" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-abstract "^1.23.6" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + gopd "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + regexp.prototype.flags "^1.5.3" + set-function-name "^2.0.2" + side-channel "^1.1.0" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== +string.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== +string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.2" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz" integrity sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= dependencies: ansi-regex "^0.2.1" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" integrity sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.0.0: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" - integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== +tar-fs@^3.0.8: + version "3.0.10" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.10.tgz" + integrity sha512-C1SwlQGNLe/jPNqapK8epDsXME7CAJR5RL3GcE6KWx1d9OUByzoHVcbu1VPI8tevg9H8Alae0AApHHFGzrD5zA== dependencies: - mkdirp-classic "^0.5.2" pump "^3.0.0" tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^4.0.1" + bare-path "^3.0.0" tar-stream@^3.1.5: version "3.1.6" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz" integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== dependencies: b4a "^1.6.4" fast-fifo "^1.2.0" streamx "^2.15.0" -terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== +terser-webpack-plugin@^5.3.11: + version "5.3.14" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.16.8" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" -terser@^5.16.8: - version "5.20.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.20.0.tgz#ea42aea62578703e33def47d5c5b93c49772423e" - integrity sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ== +terser@^5.31.1: + version "5.43.1" + resolved "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz" + integrity sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg== dependencies: "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" + acorn "^8.14.0" commander "^2.20.0" source-map-support "~0.5.20" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +text-decoder@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz" + integrity sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA== + dependencies: + b4a "^1.6.4" + +thingies@^1.20.0: + version "1.21.0" + resolved "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz" + integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== throttleit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - thunky@^1.0.2: version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== tmp@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" punycode "^2.1.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +tree-dump@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.3.tgz" + integrity sha512-il+Cv80yVHFBwokQSfd4bldvr1Md951DpgAGfmhydt04L+YzHgubm2tQ7zueWDcGENKHq0ZvGFR/hjvNXilHEg== -tslib@^2.0.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tslib@^2.0.0, tslib@^2.0.1: + version "2.8.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-is@~1.6.18: version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.8" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - is-typed-array "^1.1.9" + gopd "^1.0.1" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" + +typed-query-selector@^2.12.0: + version "2.12.0" + resolved "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz" + integrity sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg== typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== +typescript@^5.8.3: + version "5.8.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== ua-parser-js@^0.7.30: - version "0.7.31" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" - integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== + version "0.7.40" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.40.tgz" + integrity sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ== -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" -unbzip2-stream@1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" +undici-types@~7.8.0: + version "7.8.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz" + integrity sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -5747,57 +5737,52 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.2.0" + picocolors "^1.1.1" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" -urlpattern-polyfill@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz#bc7e386bb12fd7898b58d1509df21d3c29ab3460" - integrity sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g== - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util@^0.12.5: version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" @@ -5808,27 +5793,27 @@ util@^0.12.5: utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.3.2: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== vary@^1, vary@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" @@ -5837,148 +5822,143 @@ verror@1.10.0: void-elements@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== +watchpack@^2.4.1: + version "2.4.4" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz" + integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -webpack-cli@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" - integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.1" - "@webpack-cli/info" "^2.0.2" - "@webpack-cli/serve" "^2.0.5" +webpack-cli@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz" + integrity sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw== + dependencies: + "@discoveryjs/json-ext" "^0.6.1" + "@webpack-cli/configtest" "^3.0.1" + "@webpack-cli/info" "^3.0.1" + "@webpack-cli/serve" "^3.0.1" colorette "^2.0.14" - commander "^10.0.1" + commander "^12.1.0" cross-spawn "^7.0.3" - envinfo "^7.7.3" + envinfo "^7.14.0" fastest-levenshtein "^1.0.12" import-local "^3.0.2" interpret "^3.1.1" rechoir "^0.8.0" - webpack-merge "^5.7.3" + webpack-merge "^6.0.1" -webpack-dev-middleware@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz#aa079a8dedd7e58bfeab358a9af7dab304cee57f" - integrity sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg== +webpack-dev-middleware@^7.4.2: + version "7.4.2" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz" + integrity sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA== dependencies: colorette "^2.0.10" - memfs "^3.4.1" + memfs "^4.6.0" mime-types "^2.1.31" + on-finished "^2.4.1" range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.15.1: - version "4.15.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7" - integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" +webpack-dev-server@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz" + integrity sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg== + dependencies: + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.21" + "@types/express-serve-static-core" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" + bonjour-service "^1.2.1" + chokidar "^3.6.0" colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" + express "^4.21.2" graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" + http-proxy-middleware "^2.0.9" + ipaddr.js "^2.1.0" + launch-editor "^2.6.1" + open "^10.0.3" + p-retry "^6.2.0" + schema-utils "^4.2.0" + selfsigned "^2.4.1" serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.13.0" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" webpack-merge@^4.1.5: version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz" integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== dependencies: lodash "^4.17.15" -webpack-merge@^5.7.3: - version "5.8.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" - integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== +webpack-merge@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz" + integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== dependencies: clone-deep "^4.0.1" - wildcard "^2.0.0" + flat "^5.0.2" + wildcard "^2.0.1" webpack-sources@^3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.88.2: - version "5.88.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" - integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" - acorn "^8.7.1" - acorn-import-assertions "^1.9.0" - browserslist "^4.14.5" +webpack@^5.99.9: + version "5.99.9" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz" + integrity sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.14.0" + browserslist "^4.24.0" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.15.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" + graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.2.0" + schema-utils "^4.3.2" tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.1" webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: http-parser-js ">=0.5.1" @@ -5987,96 +5967,98 @@ websocket-driver@>=0.5.1, websocket-driver@^0.7.4: websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" -which-builtin-type@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" - integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== dependencies: - function.prototype.name "^1.1.5" - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" is-async-function "^2.0.0" - is-date-object "^1.0.5" - is-finalizationregistry "^1.0.2" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" is-generator-function "^1.0.10" - is-regex "^1.1.4" + is-regex "^1.2.1" is-weakref "^1.0.2" isarray "^2.0.5" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-typed-array@^1.1.11, which-typed-array@^1.1.2, which-typed-array@^1.1.9: - version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.16, which-typed-array@^1.1.19, which-typed-array@^1.1.2: + version "1.1.19" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" + has-tostringtag "^1.0.2" which@1.2.x: version "1.2.14" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + resolved "https://registry.npmjs.org/which/-/which-1.2.14.tgz" integrity sha1-mofEN48D6CfOyvGs31bHNsAcFOU= dependencies: isexe "^2.0.0" which@^1.2.1, which@^1.2.10, which@^1.2.9: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" - integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== +which@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/which/-/which-3.0.1.tgz" + integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -6085,65 +6067,47 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@8.14.2, ws@^8.13.0: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== +ws@^8.18.0, ws@^8.18.2: + version "8.18.2" + resolved "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz" + integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ== -ws@~8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" - integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.2: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yargs-parser@^20.2.2: version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@17.7.1: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yargs@^16.1.1: version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -6154,9 +6118,22 @@ yargs@^16.1.1: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" @@ -6164,10 +6141,10 @@ yauzl@^2.10.0: yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +zod@^3.24.1: + version "3.25.67" + resolved "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz" + integrity sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw== From eefb704f8d5e706b2f1a697b955ea523dbc80991 Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Wed, 25 Jun 2025 14:27:59 -0400 Subject: [PATCH 412/412] release v4.5.0 --- CHANGELOG.md | 9 +++++++++ package.json | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77c91b22..2ac7a79a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### 4.5.0 (Jun 25, 2025) + +- Internal: Update clsx version (#754) +- Fix: bounds="selector" functionality when in a Shadow DOM tree. (#763) +- Perf: Update nodeRef type for React v19 compatibility (#769) +- Fix: forgotten requestAnimationFrame call (#773) +- Perf: setState in lifecycles + forced reflow (#556) +- Fix: add allowMobileScroll prop to allow for clicks to optionally pass through on mobile (#760) + ### 4.4.6 (Sep 27, 2023) - Fix: state inconsistency in React 18 #699 diff --git a/package.json b/package.json index 0f2657da..9dc93af1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-draggable", - "version": "4.4.6", + "version": "4.5.0", "description": "React draggable component", "main": "build/cjs/cjs.js", "unpkg": "build/web/react-draggable.min.js", @@ -103,4 +103,4 @@ "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } -} +} \ No newline at end of file